2016-07-16 7 views
1

На каждом нажатии gitlab-ci запускает мой основной докер my-deploy и клонирует код в directoy /builds.Gitlab CI: установка службы Apache Docker DocumentRoot каталог в основной докере

Теперь я добавил сервисный докер my-apache к вышеуказанному. Доккер my-apache настроен для запуска apache и использует /shared/httpd/localhost в качестве DocumentRoot для apache.

Проект на основе .gitlab-ci.yml выглядит следующим образом:

# 
# This starts `my-deploy` docker and links an apache service docker... 
# 
testing: 
    stage: deploy 
    services: 
     - my-apache:latest 
    script: 
     - curl $MY_APACHE_PORT_80_TCP_ADDR 

Теперь я хочу, чтобы мой проверили код (внутри my-deploy докер в каталоге /builds) для монтажа/связан в апача докер my-apache в реж /shared/httpd/localhost.

Оправа/ссылка должна быть:

my-deploy:/builds ->my-apache:/shared/httpd/localhost

Любая идея, если это возможно, и как настроить это?

Мой gitlab-бегун конфигурации (/etc/gitlab-runner/config.toml), который добавляет my-deploy как бегун выглядит следующим образом:

# Main Linter 
[[runners]] 
    url = "https://gitlab.mydomain.com/ci" 
    token = "XXXXXXXXXXXXXXXXXXXXXXXX" 
    name = "MY_DEPLOY" 
    executor = "docker" 
    limit = 0 
    [runners.docker] 
    image = "my-deploy:latest" 
    privileged = false 
    cache_dir = "" 
    disable_cache = true 
    wait_for_services_timeout = 90 

Update:

Как gitlab делает интеграцию Docker:

http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#how-docker-integration-works

ответ

0

gitlab ci doc в в себя наряду в его [runners.docker] section

volumes 

указать дополнительные объемы, которые должны быть установлены (тот же синтаксис, как docker run -v option: см «Mount a shared-storage volume as a data volume¶»)

Убедитесь, чтобы определить общий объем, который вы бы монтировать, как /build в my-deploys и /shared/httpd/localhost в my-apache.

Это позволит отображать данные, полученные в my-deploy:/build, в my-apache:/shared/httpd/localhost.

Это означает, что:

  • сначала объявить объем Докер данных (за пределами GitLab), с docker volume create,
  • во-вторых, использовать этот объем в вашем [runners.docker] разделе вашего gitlab-ci.yml

    volumes = ["my-named-volume:/build", "my-named-volume:/shared/httpd/localhost"] 
    
+0

Не могли бы вы привести пример, пожалуйста. – lockdoc

+0

@lockdoc Я добавил в ответ примеры документов, ссылок и синтаксиса.Чего я боюсь (поскольку я еще не тестировал его), вы заявляете в томах несколько точек крепления, что означает, что ваш именованный том устанавливается дважды за службу. (один в '/ build', в'/shared/httpd/localhost'). Проверьте это и посмотрите, по крайней мере, ваши два контейнера используют один и тот же объем по ожидаемым путям. – VonC

+0

, так что я должен определить 'VOLUME' внутри' Dockerfile', чтобы создать общий каталог? – lockdoc

 Смежные вопросы

  • Нет связанных вопросов^_^