【发布时间】:2021-07-13 00:43:37
【问题描述】:
目前我有一个包含以下阶段的 CI 管道:
- 构建
- 单元测试
- 静态代码分析
这就是我的 Jenkinsfile 的样子:
pipeline {
agent any
stages {
stage("Install") {
steps {
sh "npm install"
}
}
stage("Build") {
steps {
sh "npm run build"
}
}
stage("Format") {
steps {
sh "npm run format"
}
}
stage("Lint") {
steps {
sh "npm run lint"
}
}
stage("Test") {
steps {
sh "npm run test"
}
}
stage("Code Coverage") {
steps {
sh "npm run test:cov"
publishHTML(target: [
reportDir: "./coverage/lcov-report",
reportFiles: "index.html",
reportName: "Jest Coverage Report"
])
}
}
stage("End-To-End Testing") {
steps {
sh "npm run test:e2e"
}
}
}
}
我想向我的管道添加更多阶段:
- 从 Dockerfile 构建和标记 Docker 映像
- 将镜像推送到 Docker Hub
- 需要 Docker CLI 的更多步骤
例子:
pipeline {
.
.
.
stage("Docker Build") {
steps {
sh "docker build -t [user_name]/[image_name]:[tag] .
}
}
}
我对此很陌生,我尝试了多种安装 docker 的方法,但都不成功,这也是一种不好的做法。
我们可以运行docker run -v /var/run/docker.sock:/var/run/docker.sock ...,但是在使用 docker build 命令时我不能使用绑定挂载。
有人可以建议我在 Jenkins SSH 代理中使用 docker 命令的方法吗?
【问题讨论】:
标签: docker jenkins continuous-integration devops