Jenkins:使用 Jenkins 文件的管道 Docker 作业 - Docker groovy 语法
Jenkins: Pipeline Docker Job with Jenkins file - Docker groovy syntax
我很难找到关于如何通过 jenkinsfile 为管道作业构建、注册和 运行 docker 图像的任何适当示例。这是我目前所拥有的:
node {
def myService
stage('Checkout Project') {
checkout scm
}
stage('Build Binary') {
sh "mvn package -f pom.xml -Dmaven.test.skip=true"
}
stage('Build Image') {
sh "pwd"
myService = docker.build('myService -f ${pwd}/Dockerfile')
}
stage('Test Image') {
sh "echo Tests Passed :)"
}
stage('Run uShip Docker Container') {
myService.run()
}
}
我遇到的第一个问题是当 docker.build() 触发时,它找不到我的 docker 文件,我觉得这很奇怪,因为命令 运行 与文件。接下来我无法提供任何一致的示例来说明如何注册、推送和 运行 图像。任何帮助将不胜感激!
更新:很好地解决了 docker 无法找到 docker 文件的问题。这是一个命名问题;我的 docker 文件是名称 "DockerFile" 而不是 "Dockerfile"。重命名并且它有效,但现在我收到另一个错误:
无效的存储库名称 (myService),只允许 [a-z0-9-_.]
不确定这是指什么。
更新:除了我最初的问题,docker-compose 文件必须是 .yml 类型还是可以是 .properties 文件?
docker.build
命令expects图像名称,带有可选标签作为参数。
Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes.
因此名称 myService
无效,因为大写 S
此外,docker.build
命令在同一位置查找 Dockerfile
,因此您不需要参数
上的 -f ${pwd}/Dockerfile
docker.build('myservice')
应该有效
存储库名称 (myService) 无效,仅允许 [a-z0-9-_.]
命名您的 docker 图片时不要使用大写字母。这是一个标准。
docker-compose 文件必须是 .yml 类型还是可以是 .properties 文件?
docker-compose 文件应始终是 yaml 文件。
我很难找到关于如何通过 jenkinsfile 为管道作业构建、注册和 运行 docker 图像的任何适当示例。这是我目前所拥有的:
node {
def myService
stage('Checkout Project') {
checkout scm
}
stage('Build Binary') {
sh "mvn package -f pom.xml -Dmaven.test.skip=true"
}
stage('Build Image') {
sh "pwd"
myService = docker.build('myService -f ${pwd}/Dockerfile')
}
stage('Test Image') {
sh "echo Tests Passed :)"
}
stage('Run uShip Docker Container') {
myService.run()
}
}
我遇到的第一个问题是当 docker.build() 触发时,它找不到我的 docker 文件,我觉得这很奇怪,因为命令 运行 与文件。接下来我无法提供任何一致的示例来说明如何注册、推送和 运行 图像。任何帮助将不胜感激!
更新:很好地解决了 docker 无法找到 docker 文件的问题。这是一个命名问题;我的 docker 文件是名称 "DockerFile" 而不是 "Dockerfile"。重命名并且它有效,但现在我收到另一个错误:
无效的存储库名称 (myService),只允许 [a-z0-9-_.]
不确定这是指什么。
更新:除了我最初的问题,docker-compose 文件必须是 .yml 类型还是可以是 .properties 文件?
docker.build
命令expects图像名称,带有可选标签作为参数。
Name components may contain lowercase letters, digits and separators. A separator is defined as a period, one or two underscores, or one or more dashes.
因此名称 myService
无效,因为大写 S
此外,docker.build
命令在同一位置查找 Dockerfile
,因此您不需要参数
-f ${pwd}/Dockerfile
docker.build('myservice')
应该有效
存储库名称 (myService) 无效,仅允许 [a-z0-9-_.]
命名您的 docker 图片时不要使用大写字母。这是一个标准。
docker-compose 文件必须是 .yml 类型还是可以是 .properties 文件?
docker-compose 文件应始终是 yaml 文件。