circle ci能否使用docker-compose搭建环境
Can circle ci use docker-compose to build the environment
我目前在django应用中有db、web等几个服务,用docker-compose串起来。
网页版有这样的代码..
web:
restart: always
build: ./web
expose:
- "8000"
web中的docker文件有python2.7-onbuild,所以它使用requirements.txt文件来安装所有必要的依赖项。
我现在使用 circle CI 进行集成,并且有一个像这样的 circle.yml 文件..
....
dependencies:
pre:
- pip install -r web/requirements.txt
....
无论如何我可以避免循环 yml 文件中的依赖项子句。
相反,我希望 Circle CI 使用 docker-compose.yml,如果这有意义的话。
我自己还没有尝试过,但是根据这里的信息https://circleci.com/docs/docker我想它可能有用
# circle.yml
machine:
services:
- docker
dependencies:
pre:
- pip install docker-compose
test:
pre:
- docker-compose up -d
是的,在 circle.yml
文件中使用 docker-compose
是 运行 测试的好方法,因为它可以非常接近地反映开发环境。这是我们对 AngularJS 项目的 工作 测试的摘录:
---
machine:
services:
- docker
dependencies:
override:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- sudo pip install --upgrade docker-compose==1.3.0
test:
pre:
- docker-compose pull
- docker-compose up -d
- docker-compose run npm install
- docker-compose run bower install --allow-root --config.interactive=false
override:
# grunt runs our karma tests
- docker-compose run grunt deploy-build compile
备注:
- 仅当您在 docker 集线器中有私有图像时才需要
docker login
。
- 当我们编写
circle.yml
文件时,只有 docker-compose 1.3 可用。这可能现在更新了。
不幸的是,circleCI 默认安装旧版本的 Docker 1.9.1,它与最新版本的 docker-compose 不兼容。为了获得更新鲜的 docker 版本 1.10.0,您应该:
machine:
pre:
- curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0
- pip install docker-compose
services:
- docker
test:
pre:
- docker-compose up -d
阅读更多:https://discuss.circleci.com/t/docker-1-10-0-is-available-beta/2100
UPD: Native-Docker support on Circle version 2.
在此处阅读有关如何切换到新 Circle CI 版本的更多信息:https://circleci.com/docs/2.0/migrating-from-1-2/
我目前在django应用中有db、web等几个服务,用docker-compose串起来。
网页版有这样的代码..
web:
restart: always
build: ./web
expose:
- "8000"
web中的docker文件有python2.7-onbuild,所以它使用requirements.txt文件来安装所有必要的依赖项。
我现在使用 circle CI 进行集成,并且有一个像这样的 circle.yml 文件..
....
dependencies:
pre:
- pip install -r web/requirements.txt
....
无论如何我可以避免循环 yml 文件中的依赖项子句。
相反,我希望 Circle CI 使用 docker-compose.yml,如果这有意义的话。
我自己还没有尝试过,但是根据这里的信息https://circleci.com/docs/docker我想它可能有用
# circle.yml
machine:
services:
- docker
dependencies:
pre:
- pip install docker-compose
test:
pre:
- docker-compose up -d
是的,在 circle.yml
文件中使用 docker-compose
是 运行 测试的好方法,因为它可以非常接近地反映开发环境。这是我们对 AngularJS 项目的 工作 测试的摘录:
---
machine:
services:
- docker
dependencies:
override:
- docker login -e $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASS
- sudo pip install --upgrade docker-compose==1.3.0
test:
pre:
- docker-compose pull
- docker-compose up -d
- docker-compose run npm install
- docker-compose run bower install --allow-root --config.interactive=false
override:
# grunt runs our karma tests
- docker-compose run grunt deploy-build compile
备注:
- 仅当您在 docker 集线器中有私有图像时才需要
docker login
。 - 当我们编写
circle.yml
文件时,只有 docker-compose 1.3 可用。这可能现在更新了。
不幸的是,circleCI 默认安装旧版本的 Docker 1.9.1,它与最新版本的 docker-compose 不兼容。为了获得更新鲜的 docker 版本 1.10.0,您应该:
machine:
pre:
- curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | bash -s -- 1.10.0
- pip install docker-compose
services:
- docker
test:
pre:
- docker-compose up -d
阅读更多:https://discuss.circleci.com/t/docker-1-10-0-is-available-beta/2100
UPD: Native-Docker support on Circle version 2.
在此处阅读有关如何切换到新 Circle CI 版本的更多信息:https://circleci.com/docs/2.0/migrating-from-1-2/