我是Bamboo的新手,正在尝试使用Bamboo和Docker获得以下流程:
atlassian/bamboo-java-agent:latest
docker容器。我设置了一个测试构建计划并在计划中我的第一个任务是启动一个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
第二项任务是获取源代码并进行部署。第3项任务是测试,第4项任务是关闭容器。
Bamboo上还有其他在线代理,我的构建计划有时会使用那些而不是我作为构建计划的一部分启动的Docker容器。
我有办法做到吗?
我希望这一切都有道理。我对此非常陌生,任何帮助都将受到赞赏。
答案 0 :(得分:3)
我们(Atlassian Build Engineering)创建了一组插件,用于在群集(ECS)中运行基于Docker的代理,该群集联机,构建单个作业然后退出。我们最近开源了解决方案。
有关详细信息,请参阅https://bitbucket.org/atlassian/per-build-container。
答案 1 :(得分:0)
首先,您需要确保“main”docker容器在运行时没有退出。
检查
docker ps -a
你应该看到它正在运行
现在假设它正在运行,您可以在容器内执行命令
进入容器
docker exec -it containerName bash
从容器外部执行容器内的命令
docker exec -it containerName commandToExecuteInsideTheContainer
你可以作为容器dockerfile的一部分复制其中的一个脚本来执行某些操作。
然后,您可以使用上述方法从容器外部执行该脚本。
希望这能提供一些见解。