jenkins:pipe道docker工作与jenkins文件 – docker常规语法

我是一个问题find如何构build,注册,并通过pipe道作业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文件,我觉得这很奇怪,因为这个命令运行Dockerfile的同一个目录。 接下来,我不能任何如何注册,推送和运行图像的一致的例子。 任何帮助将不胜感激!

更新:好了解决了docker不能finddocker文件的问题。 这是一个命名问题; 我的docker文件名称是“DockerFile”而不是“Dockerfile”。 重命名和它的工作,但现在我得到另一个错误:

无效的存储库名称(myService),只允许[a-z0-9-_。]

不知道这是指什么。

更新:除了我最初的问题,docker-compose文件必须是.ymltypes还是可以是.properties文件?

docker.build命令需要一个带有可选标记的图像名称作为参数。

从文档 :

名称组件可能包含小写字母,数字和分隔符。 分隔符被定义为句点,一个或两个下划线或一个或多个破折号。

所以名称myService由于大写字母S而无效

此外, docker.build命令在同一位置查找Dockerfile ,因此您不需要参数上的-f ${pwd}/Dockerfile

docker.build('myservice')应该工作

无效的存储库名称(myService),只允许[a-z0-9-_。]

命名您的泊坞窗图像时不要使用大写字母。 这是一个标准。

docker-compose文件必须是.ymltypes还是可以是.properties文件?

docker-compose文件应该始终是yaml文件。