docker - Docker:在 jenkinsfile 中运行 cmds 时找不到
问题描述
我是 docker 和 CI 的新手。我正在尝试创建一个 jenkinsfile 来构建和测试我的应用程序,然后使用我编写的 Dockerfile 构建一个 docker 映像,然后将其推送到 AWS ECR 中。我坚持的步骤是使用 docker 构建图像,我收到错误消息docker: not found
。我下载了docker插件并在全局工具配置选项卡中进行了配置。我没有正确地将它添加到工具中吗?
还有另一个帖子磨损,您可以使用 kubernetes 来做到这一点,但是 kubernetes 不再支持 docker。
我如何在全局工具配置中配置 docker 的图像: 全局工具配置
错误
/var/jenkins_home/workspace/client-pipeline_feature-jenkins@tmp/durable-41220eb0/script.sh: 1: /var/jenkins_home/workspace/client-pipeline_feature-jenkins@tmp/durable-41220eb0/script.sh: docker: not found
def gv
containerVersion = "1.0"
appName = "foodcore"
imageName = appName + ":" + version
pipeline {
agent any
environment {
CI = 'true'
}
tools {
nodejs "node"
docker "docker"
}
stages {
stage("init") {
steps {
script {
gv = load "script.groovy"
CODE_CHANGES = gv.getGitChanges()
}
}
}
stage("build frontend") {
steps {
dir("client") {
sh 'npm install'
}
}
}
stage("build backend") {
steps {
dir("server") {
sh 'npm install'
}
}
}
stage("test") {
when {
expression {
script {
CODE_CHANGES == false
}
}
}
steps {
dir("client") {
sh 'npm test'
}
}
}
stage("build docker image") {
when {
expression {
script {
env.BRANCH_NAME.toString().equals('Main') && CODE_CHANGES == false
}
}
}
steps {
sh "docker build -t ${imageName} ."
}
}
stage("push docker image") {
when {
expression {
env.BRANCH_NAME.toString().equals('Main')
}
}
steps {
sh 'aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin repoURI'
sh 'docker tag foodcore:latest ...repoURI
sh 'docker push repoURI'
}
}
}
}
解决方案
Docker 应该安装在 Jenkins 正在运行的服务器上。Jenkins 提供的 docker 插件就像一个为管道脚本生成一些片段的工具。安装和配置该工具不会安装 docker 守护进程。请检查 docker 是否安装在操作系统上。
推荐阅读
- python - 在课堂上作为参数列出?
- javascript - 如何将 JSON 数据存储在 html 标签中?
- html - HTML - 如何使用 thead/tfoot 打印页码
- android - Android studio - 没有连接设备的问题
- python - sympy 方程中的未知数学错误(python)
- laravel - 在 Nova 中创建记录后的 404
- xamarin - NSDateFormatter 在 nb_NO (Norsk Bokmal) 语言环境的月份前面有额外的点
- javascript - jQuery获取输入事件但之后不输入
- moodle - 显示从 sql 表到 Moodle 消息系统的值
- swift - 如何在 xcode 项目中更改导航标题按钮文本