2015-08-03 22 views
13

Şu anda dbgo uygulamasında db ve web gibi birkaç hizmetim var ve bunları birleştirmek için docker-compose kullanılır.Çevreyi oluşturmak için ci kullanın docker-compose

web sürümünü böyle kodu vardır .. gerekli tüm bağımlılıkları yüklemek için requirements.txt dosyası kullanır, böylece web

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

liman işçisi dosyası, python2.7-onbuild sahiptir.

Şimdi entegrasyon için daire CI kullanarak ve böyle bir circle.yml dosyası var am ..

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

yine de var ben daire yml dosyasında bağımlılık maddesini önlemek olabilir.

Bunun yerine Circle CI'nin docker-compose.yml komutunu kullanmasını isterim, bunun anlamı mantıklıysa.

cevap

17

Evet çalışabilir burada bilgi https://circleci.com/docs/docker sanırım bu kendimi denedim ama esaslı değil olanlar çok yakın çevre.

--- 

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 

Notlar: Bu bir angularjs proje üzerinde bizim çalışan testlerden bir özü size liman işçisi göbeğine özel görüntüleri varsa docker login sadece ihtiyaç vardır

  • .
  • sadece circle.yml dosyamıza yazdığımız zaman docker-compose 1.3 vardı. Bu muhtemelen şimdi güncellenmektedir.
3

buna yansıtabilirsiniz çünkü testler için güzel bir yol olabilir circle.yml dosyasında docker-compose kullanarak,

# circle.yml 
machine: 
    services: 
    - docker 

dependencies: 
    pre: 
    - pip install docker-compose 

test: 
    pre: 
    - docker-compose up -d 
3

Ne yazık ki, circleCI varsayılan olarak docker-compose'un en son sürümüyle uyumlu olmayan eski Docker 1.9.1 sürümünü yükleyin. Amacıyla daha taze liman işçisi versiyonunu 1.10.0 almak için olmalıdır:

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 

Devamı: https://discuss.circleci.com/t/docker-1-10-0-is-available-beta/2100

UPD'yi: 2.

Oku Çember sürümüne Yerli-Docker desteği daha bilgi burada yeni Circle CI sürümüne nasıl geçilir: https://circleci.com/docs/2.0/migrating-from-1-2/

+0

Bu görüntüyü aslında yerinde oluşturmayı destekliyor mu? – mrBorna