2015-08-03 7 views
13

Mam obecnie kilka usług, takich jak db i web w aplikacji django, a do tworzenia połączeń używa się funkcji docker-compose.Koło ci używać doker-komponować do budowania środowiska

Wersja internetowa ma kod tak ..

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

Plik doker w internecie ma python2.7-onbuild, więc używa pliku requirements.txt zainstalować wszystkie niezbędne zależności.

jestem teraz za pomocą koła CI dla integracji i mieć plik circle.yml tak ..

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

Czy mimo to mogę uniknąć klauzuli o zależnościach w pliku koło yml.

Zamiast tego chciałbym, aby w Kole okręgowym używał funkcji docker-compose.yml, jeśli ma to sens.

Odpowiedz

17

Tak, używając docker-compose w pliku circle.yml może być dobry sposób, aby uruchomić testy, ponieważ może to odzwierciedlać środowiska deweloperskiego bardzo blisko. Jest to wyciąg z naszych roboczych testów na angularjs projektu:

--- 

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 

Uwagi:

  • docker login jest potrzebne tylko wtedy, gdy obrazy prywatnych w piaście Döcker.
  • kiedy napisaliśmy nasz plik circle.yml dostępny był tylko docker-compose 1.3. Prawdopodobnie jest to teraz zaktualizowane.
3

nie próbowałem to sobie, ale na podstawie informacji tutaj https://circleci.com/docs/docker Chyba może działać

# circle.yml 
machine: 
    services: 
    - docker 

dependencies: 
    pre: 
    - pip install docker-compose 

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

Niestety, circleCI domyślnie instaluje starą wersję Docker 1.9.1, która nie jest zgodna z najnowszą wersją docker-compose. W celu uzyskania bardziej świeże Döcker wersji 1.10.0 należy:

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 

Więcej: https://discuss.circleci.com/t/docker-1-10-0-is-available-beta/2100

UPD: Native-Docker wsparcia w wersji Okrąg 2.

Czytaj więcej informacje, jak przejść do nowej wersji Circle CI tutaj: https://circleci.com/docs/2.0/migrating-from-1-2/

+0

czy wiesz, czy to faktycznie służy do budowania obrazu na miejscu? – mrBorna

Powiązane problemy