首页 文章

Jenkins:使用Jenkins文件管道Docker作业 - Docker groovy语法

提问于
浏览
0

我是一个问题,找到如何通过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 回答

  • 1

    docker.build 命令expects带有可选标记作为参数的图像名称 .

    来自documentation

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

    所以名称 myService 因大写 S 而无效

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

    docker.build('myservice') 应该有效

  • 0

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

    命名docker镜像时不要使用大写 . 这是一个标准 .

    docker-compose文件必须是.yml类型还是.properties文件?

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

相关问题