首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在每次运行新的竹子构建时启动新的Docker容器,并使用容器在中运行构建

在每次运行新的竹子构建时启动新的Docker容器,并使用容器在中运行构建
EN

Stack Overflow用户
提问于 2015-01-22 20:04:58
回答 2查看 6.1K关注 0票数 16

我是一个新手,我正在尝试使用竹子和Docker来获得以下的流程:

  1. Developer将代码提交到Bitbucket分支
  2. 构建计划检测change
  3. 构建计划,然后在安装了Docker的专用AWS实例上启动Docker容器。在Docker容器中,还启动了一个远程代理。我使用竹子停靠器container.
  4. Remote代理向container
  5. Container
  6. 注册,构建计划的其余部分在atlassian/bamboo-java-agent:latest中运行,当计划完成

时,代理将被删除

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

代码语言:javascript
复制
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

第二个任务是获取源代码并进行部署。第三个任务是测试,第四个任务是关闭容器。

竹子上还有其他在线的代理,我的构建计划有时会使用这些代理,而不是我作为构建计划的一部分启动的Docker容器。

有没有办法让我做到这一点?

我希望这一切都有意义。我是真正的新手,任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2017-03-22 18:42:10

我们(Atlassian Build Engineering)已经创建了一组插件,用于在集群(ECS)中运行基于Docker的代理,该集群在线,构建单个作业,然后退出。我们最近开源了这个解决方案。

有关更多详细信息,请参阅https://bitbucket.org/atlassian/per-build-container

票数 3
EN

Stack Overflow用户

发布于 2016-03-18 17:54:14

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

检查:

代码语言:javascript
复制
docker ps -a

您应该会看到它正在运行

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

进入容器

代码语言:javascript
复制
docker exec -it containerName bash

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

代码语言:javascript
复制
docker exec -it containerName commandToExecuteInsideTheContainer

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

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

希望这能给我们一些启发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28088351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档