Как использовать Docker-контейнер в качестве хоста с ansible, работающего в Docker-контейнере на gitlab-ci? - PullRequest
0 голосов
/ 03 декабря 2018

Я хотел бы протестировать наше развертывание с помощью gitlab-ci с использованием док-контейнеров.Я пытаюсь создать задание, которое использует установленный в нем анкерный докер-конейнер и использует другой докер-контейнер в качестве хоста для ansible-playbook.

deploy-test:
    stage: deploy-test
    image: stretch-ansible-docker-container
    script:
        - ansible-playbook -i <use-another-docker-container> test-deploy.yaml

Как я могу создать и определить докер-контейнер, которыйдолжен быть использован в качестве хоста?

1 Ответ

0 голосов
/ 03 декабря 2018

Существуют разные подходы, в основном они зависят от того, хотите ли вы использовать docker-in-docker для построения докеров или просто поделиться хостом /var/run/docker.sock.Если второй вариант, ваши шаги будут выглядеть так:

Сначала создайте Dockerfiles для ваших любимых контейнеров.Возможно, поместите их в исходные тексты вашего проекта, скажем, Dockerfiles\ подпапка

Затем добавьте один этап в ваш конвейер, например: gitlab-ci.yml

stages:
  - prepare-dockers
  - test

prepare:
  stage: prepare-dockers
  image: docker:latest
  script:
    - docker build -t <use-another-docker-container> Dockerfiles

Таким образом, вы готовите свой контейнер на следующих этапах.Не забывайте, что если вы используете общий доступ к докеру (не чистый dind), вы подключены к реестру докера вашего хоста, и там будут отображаться все образы.

Но вы также не должны забывать делиться сокетом докера с помощьюредактирование gitlab-config.toml, чтобы разрешить совместное использование докера (выставить /var/run/docker.sock).

...