从 Jenkins 在 Docker 主机上运行 docker-compose 命令

时间:2020-12-30 14:24:40

标签: git docker jenkins docker-compose

所以我有一个运行 Docker 引擎(由 docker-compose 控制)的服务器以及我的 Jenkins 和应用程序容器(Node.js、React.js)。目标是让 scm webhook 启动 Jenkins 作业,以提取最新代码、运行测试和部署应用服务。

目前我只有一个 git 存储库,其中包含 Node.js 和 React.js 服务的代码,我计划将它们移动到单独的存储库中。我想要的基本上是当有人将代码推送到该 repo 的 master 分支时,我希望服务器拉取 git repo,运行测试并部署应用程序。

那么对于初学者来说,我如何最好地将新代码放入应用程序容器中? git pull 是否应该包含在这些图像的 Dockerfile 中?然后我也许可以重建这些图像来触发新代码的拉取?或者 Jenkins 是否应该在服务器中触发 git pull,然后将这些文件注入到容器/图像中?

第二部分是,我是否应该在不久将用于部署应用程序的同一个容器中运行测试?

目前我已经绑定了 docker.sock,就像你在下面看到的那样,以便能够与主机中的 Docker 通信。但是我如何从 Jenkins 获得 docker-compose 呢?

services:
  jenkins:      
    image: jenkins/jenkins:lts
    privileged: true
    user: root
    ports:
      - "50000:50000"
      - "9000:8080"
    container_name: jenkins
    volumes:
      - ./jenkins:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock
      - /usr/local/bin/docker:/usr/local/bin/docker

0 个答案:

没有答案