13

現在、django アプリケーションに db や web などのいくつかのサービスがあり、docker-compose を使用してそれらをつなぎ合わせています。

Web版にはこんなコードが。

web:
  restart: always
  build: ./web
  expose:
    - "8000"

Web の docker ファイルには python2.7-onbuild があるため、requirements.txt ファイルを使用して必要なすべての依存関係をインストールします。

現在、統合にサークル CI を使用しており、このような circle.yml ファイルがあります。

....
dependencies:
  pre:
    -  pip install -r web/requirements.txt
....

とにかく、サークルymlファイルの依存関係節を避けることができますか?

代わりに、Circle CI に docker-compose.yml を使用してもらいたいと考えています。

4

3 に答える 3

18

はい、ファイルで使用docker-composeするcircle.ymlと、開発環境を非常に厳密にミラーリングできるため、テストを実行するのに適した方法になる可能性があります。これは、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 ハブにプライベート イメージがある場合にのみ必要です。
  • ファイルを作成したとき、circle.ymldocker-compose 1.3 しか利用できませんでした。これはおそらく現在更新されています。
于 2015-09-30T08:17:25.003 に答える
3

私はこれを自分で試したことはありませんが、ここの情報に基づいてhttps://circleci.com/docs/dockerうまくいくと思います

# circle.yml
machine:
  services:
    - docker

dependencies:
  pre:
    - pip install docker-compose

test:
  pre:
    - docker-compose up -d
于 2015-08-03T15:13:09.037 に答える