【问题标题】:Can circle ci use docker-compose to build the environment可以circle ci使用docker-compose搭建环境吗
【发布时间】:2015-08-03 12:35:27
【问题描述】:

我目前在一个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。

【问题讨论】:

    标签: django docker-compose circleci


    【解决方案1】:

    是的,在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 login 仅当您在 docker hub 中有私有映像时才需要。
    • 当我们编写 circle.yml 文件时,只有 docker-compose 1.3 可用。现在可能已更新。

    【讨论】:

      【解决方案2】:

      我自己没有尝试过,但根据https://circleci.com/docs/docker 此处的信息,我想它可能会起作用

      # circle.yml
      machine:
        services:
          - docker
      
      dependencies:
        pre:
          - pip install docker-compose
      
      test:
        pre:
          - docker-compose up -d
      

      【讨论】:

        【解决方案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:Circle 版本 2 上的 Native-Docker 支持。

        在此处阅读有关如何切换到新的 Circle CI 版本的更多信息:https://circleci.com/docs/2.0/migrating-from-1-2/

        【讨论】:

        • 不知道这是否支持实际现场构建镜像?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-02
        • 1970-01-01
        • 1970-01-01
        • 2019-02-25
        • 1970-01-01
        • 2020-12-17
        • 1970-01-01
        相关资源
        最近更新 更多