可以使用concourse的docker资源来获取在任务中的docker compose中使用的容器吗?目前我只是从我的私有docker注册表中获取集成测试的容器,但这样做的连接/资源不会显示在concourse UI中。有什么想法吗?
目前我的任务是:
---
platform: linux
inputs:
- name: devops-repo
- name:client-repo
params:
RUNNER_IMG:
CLIENT_IMG:
SERVER_IMG:
run:
path: sh
args:
- -exc
- |
# "E2E testing:"
- |
# Export map the parameters to the dockerfile env.
export docker-registry-protractor=${RUNNER_IMG}
export docker-registry-client-dist=${CLIENT_IMG}
export docker-registry-server-dist=${SERVER_IMG}
export HOME=/protractor
# Move to the Protractor test project folder
mkdir $HOME
# Get the docker compose file:
cp devops-repo/my-pipeline/templates/e2e/docker-compose.yml $HOME/docker-compose.yml
# Get the tests:
cp client-repo/test/e2e/** $HOME
cd $HOME
# https://github.com/concourse/concourse/issues/324
# Spin up the stack as described in docker-compose:
docker daemon &
docker-compose up
Dockerfile使用正在构建的容器,并在管道的上一步中上传到私有docker注册表。
答案 0 :(得分:3)
This repo关于如何在大厅中的docker中运行docker compose有一个很好的了解 - 你最终做的是使用docker图像和docker compose预安装,然后加载其他图像。使用concourse预取这些图像然后在本地缓存它们确实有助于提高性能。
一个技巧是将docker compose文件放在获取的代码库中更容易,而不是在concourse配置中。
缩写的大厅yml:
oout.writeObject(new BigInteger(Line));