使用每个新的Bamboo构建运行启动新的Docker容器并使用容器运行构建

Jac*_*den 16 bamboo docker

我是Bamboo的新手,正在尝试使用Bamboo和Docker获得以下流程:

  1. 开发人员将代码提交给Bitbucket分支
  2. 构建计划检测到更改
  3. 然后,构建计划在安装了Docker的专用AWS实例上启动Docker容器.在Docker容器中也启动了远程代理.我使用atlassian/bamboo-java-agent:latestdocker容器.
  4. 远程代理向Bamboo注册
  5. 构建计划的其余部分在容器中运行
  6. 计划完成后,容器和代理将被删除

我设置了一个测试构建计划并在计划中我的第一个任务是启动一个Docker实例,如下所示:

sudo docker run -d --name "${bamboo.buildKey}_${bamboo.buildNumber}" \
   -e HOME=/root/ -e BAMBOO_SERVER=http://x.x.x.x:8085/ \
   -i -t atlassian/bamboo-java-agent:latest
Run Code Online (Sandbox Code Playgroud)

第二项任务是获取源代码并进行部署.第3项任务是测试,第4项任务是关闭容器.

Bamboo上也有其他在线代理,我的构建计划有时使用那些而不是我作为构建计划的一部分开始的Docker容器.

有没有办法让我做到以上几点?

我希望这一切都有道理.我对此非常陌生,任何帮助都将受到赞赏.

dan*_*y74 0

首先,您需要确保“主”docker 容器在运行时没有退出。

检查与

docker ps -a
Run Code Online (Sandbox Code Playgroud)

你应该看到它正在运行

现在假设它正在运行,您可以在容器内执行命令

进入容器

docker exec -it containerName bash
Run Code Online (Sandbox Code Playgroud)

从容器外部执行容器内部的命令

docker exec -it containerName commandToExecuteInsideTheContainer
Run Code Online (Sandbox Code Playgroud)

您可以作为容器 dockerfile 的一部分复制其中执行某些操作的脚本。

然后,您可以使用上述方法从容器外部执行该脚本。

希望这能提供一些见解。