我是一个问题,找到如何通过jenkins文件为管道作业构建,注册和运行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文件,因为该命令运行Dockerfile的同一目录 . 接下来,我没有任何关于如何注册,推送和运行图像的一致示例 . 任何帮助将不胜感激!
更新:修复了docker无法找到docker文件的问题 . 这是一个命名问题;我的docker文件名为“DockerFile”而不是“Dockerfile” . 重命名并且有效,但现在我又收到了另一个错误:
存储库名称无效(myService),仅允许[a-z0-9-_ . ]
不确定这是指什么 .
更新:除了我最初的问题,docker-compose文件必须是.yml类型还是.properties文件?
2 回答
docker.build
命令expects带有可选标记作为参数的图像名称 .来自documentation:
所以名称
myService
因大写S
而无效此外,
docker.build
命令在同一位置查找Dockerfile
,因此参数上不需要-f ${pwd}/Dockerfile
docker.build('myservice')
应该有效存储库名称无效(myService),仅允许[a-z0-9-_ . ]
命名docker镜像时不要使用大写 . 这是一个标准 .
docker-compose文件必须是.yml类型还是.properties文件?
docker-compose文件应该始终是yaml文件 .