2016-09-16 6 views
0

Итак, я использую gitlab-ci для развертывания моих сайтов в контейнерах докеров, потому что gitlab-ci docker runner, похоже, не делает того, что я хочу делать. Я использую и запустить его docker-compose up -d. Здесь возникает проблема.Работа с данными в контейнерах Docker с Gitlab-Ci

У меня есть 2 тома в моем докер-контейнере. ./:/var/www/html/ (который является содержимым моего git-репо, поэтому файлы, которые я хочу заменить на сборке), и mount, который является «внутри» этого mount /srv/data:/var/www/html/software/permdata (который является постоянным монтированием на моем сервере).

Когда запускается gitlab-ci runner, он пытается удалить все файлы во время работы контейнера, но из-за этого монтирования на нем он получает device busy и прерывается. Поэтому я должен вручную остановить и удалить контейнер, прежде чем я смогу запустить мою сборку (какой вид побеждает точка автоматизации сборки).

Опции Я думал о том, чтобы решить эту проблему:

  1. остановку и удалить контейнер перед началом gitlab-CI-мульти-бегун (кажется, не представляется возможным)
  2. добавить данные GIT в мой Docker контейнер и только смонтировать мой permdata (кажется, как вы не можете добавить данные в контейнер без опции объема с грузчиком компоновать, как вы можете в Dockerfile)

Вариант 2 был бы идеальным, потому что тогда было бы также разобраться в моих вопросах с разрешениями на файлы. Может быть, кто-то прошел через такой же проблемой и может дать мне совет

ответ

0

кажется, что вы не можете добавить данные в контейнер без опции объема с грузчиком компоновать, как вы можете в Dockerfile

Это правильно. Файл Compose не предназначен для замены файла Docker, он предназначен для запуска нескольких изображений для приложения или проекта.

Вы можете изменить Dockerfile, чтобы скопировать файлы git.

+0

Спасибо, но я это уже знаю. Но создание нового файла Docker и образа для каждого контейнера нежелательно для этой проблемы, так как это создаст огромный список новых проблем. – user3676487