我们正处于从Jenkins迁移到汇合CI的过程中,到目前为止,一切都非常顺利。但现在我有一个问题,我不知道如何解决。我想听听社会人士的意见。
我想做的是一项可以使用Selenium运行集成或功能(web)测试的工作。对我们来说几乎没有什么问题:
正如你所看到的,这是一个相当重要的任务。当然,我可以创建一个包含我所需要的一切的大型uber容器,但是这是一个糟糕的解决方案。另一种选择是为此创建一个shell脚本,但这不够灵活。
有什么例子可以说明我如何在这个问题上实施这种做法或良好做法吗?
谢谢!
发布于 2016-06-28 19:57:16
从1.3.0版本开始,您似乎可以在一个任务:https://github.com/concourse/concourse/issues/324中运行Docker
这似乎是可行的:
jobs:
- name: docker-compose
public: true
serial: true
plan:
- do:
- task: docker-compose
timeout: 20m
privileged: true
config:
platform: linux
image_resource:
type: docker-image
source: {repository: "mumoshu/dcind", tag: "latest"}
run:
path: sh
args:
- -exc
- |
source /docker-lib.sh
start_docker
docker ps
docker-compose version发布于 2017-03-09 10:14:11
这是Concourse作者的评论:
主机上没有Docker二进制文件或套接字--它们只是运行一个Garden后端(可能是监护人)。Concourse在Docker之上的抽象层运行,因此提供任何魔法都没有意义。 有一件事缺少后1.3是码头要求你建立自己的cgroup。我忘了这有多烦人。我希望他们做了卫报所做的,并自动配置它,但你能做什么。 所以,完整的一套指令是: 使用或构建一个包含停靠者的图像,例如,docker:dind。在您的任务开始时运行以下命令:https://github.com/concourse/docker-image-resource/blob/master/assets/common.sh#L1-L40用Docker守护进程旋转docker &。 然后你就可以像往常一样做码头工和朋友了。 这样做的缺点是每次都会获取图像。230号将解决这一问题。 从长远来看,#324 (评论)是我想要走的方向。
见这里https://github.com/concourse/concourse/issues/324
与接受的答案一样,Slack归档数据被删除(由于Slack限制)
专用于使用酶的对接者图像:https://github.com/meAmidos/dcind
发布于 2016-12-26 21:46:10
我听起来没那么复杂。我写了一篇关于如何获得类似的东西并运行这里的文章。我使用了一些不同的容器,用于堆栈和测试运行程序,并启动所有从正式码头:dind映像与码头组成安装在它.
除了通常的汇合内容(获取资源等)之外,执行测试运行的内容包括:
为了清晰地设置和拆卸堆栈和测试运行程序,您可以执行如下操作(如果在测试开始时服务没有启动,那么您可以使用取决于,对我来说,它没有工作)
# Setup the SUT stack:
docker-compose up -d
# Run the test-runner container outside of the SUT to be able to teardown the SUT when testing is completed:
docker-compose run --rm test-runner --entrypoint '/entrypoint.sh /protractor/project/conf-dev.js --baseUrl=http://web:9000/dist/ --suite=my_suite'
# Store the return-code from the tests and teardown:
rc=$?
docker-compose down
echo "exit code = $rc "
kill %1
exit $rchttps://stackoverflow.com/questions/37919989
复制相似问题