如何在Jenkins管道中建立和上传Docker-Compose文件

发布于 2025-02-11 22:33:12 字数 397 浏览 2 评论 0 原文

我需要使用docker-compose.yaml文件构建一个docker映像,然后我需要在dockerhub上推动它。 我使用以下命令来构建Dockerfile,然后将其推到使用Jenkins Docker插件的Dockerhub。

stage('Building image and Push') {
      steps{
        script {
          customImage = docker.build("my-image:${env.BUILD_ID}")
          customImage.push()
        }
      }
    }

是否有类似的方法来编写这种命令来构建和推动Docker-Compose文件?

PS:我听说了一个名为

I need to build a docker image using docker-compose.yaml file and then I need to push it on dockerhub.
I used following command to build Dockerfile and push it to dockerhub with jenkins docker plugin.

stage('Building image and Push') {
      steps{
        script {
          customImage = docker.build("my-image:${env.BUILD_ID}")
          customImage.push()
        }
      }
    }

Is there a similar method to write this kind of command to build and push docker-compose file?

PS: I heard about about a plugin called Docker compose build step. Can I do same as above with this plugin?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我ぃ本無心為│何有愛 2025-02-18 22:33:12

在脚本管道中,这似乎不支持。

基于(因此,使用 docker-compose 预装),我想您可以直接弹出这些命令:

stage('Build Docker Image') {  
    steps{                     
    sh 'docker-compose build'     
    echo 'Docker-compose-build Build Image Completed'                
    }           
}

然后登录到dockerhub并按下“ 简单的jenkins声明管道,以将docker image推向docker hub

stage('Login to Docker Hub') {          
    steps{                          
    sh 'echo $DOCKERHUB_CREDENTIALS_PSW | sudo docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'                     
    echo 'Login Completed'      
    }           
}
stage('Push Image to Docker Hub') {         
    steps{                            
 sh 'sudo docker push <dockerhubusername>/<dockerhubreponame>:$BUILD_NUMBER'           
echo 'Push Image Completed'       
    }            
}

一种手动方法”,因为是一种手动方法代理docker-compose “不是直接可用的(您有Docker 代理docker/dockerfile/kubernetes ,但没有 docker-compose 选项)

This does not seem supported in a scripted pipeline.

Using purely a declarative pipeline on an agent based on the docker-compose image (so with docker-compose preinstalled), I suppose you can shell script those commands directly:

stage('Build Docker Image') {  
    steps{                     
    sh 'docker-compose build'     
    echo 'Docker-compose-build Build Image Completed'                
    }           
}

And then login to DockerHub and push, as described in "Simple Jenkins Declarative Pipeline to Push Docker Image To Docker Hub"

stage('Login to Docker Hub') {          
    steps{                          
    sh 'echo $DOCKERHUB_CREDENTIALS_PSW | sudo docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'                     
    echo 'Login Completed'      
    }           
}
stage('Push Image to Docker Hub') {         
    steps{                            
 sh 'sudo docker push <dockerhubusername>/<dockerhubreponame>:$BUILD_NUMBER'           
echo 'Push Image Completed'       
    }            
}

A manual approach, since an "agent docker-compose" is not directly available (you have docker agent docker/dockerfile/kubernetes, but no docker-compose option)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文