Сборка Docker с использованием томов во время сборки - PullRequest
0 голосов
/ 28 июня 2018

Есть ли способ использовать внешние тома при сборке образа докера?

У меня есть ситуация, когда я хотел бы использовать конфигурацию во внешнем томе во время сборки образа докера. Это возможно?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Вы можете скопировать файл в образ докера (ADD) и rm как один из последних шагов

0 голосов
/ 28 июня 2018

Если под «сборкой образа Docker» вы имеете в виду запуск одной команды «сборка Docker ...»: нет, это невозможно сделать (по крайней мере, не в самой последней документации, которую я прочитал). Однако ничто не мешает вам выполнить шаг, для которого требуется внешний том, с помощью прямых команд docker, а затем зафиксировать контейнер и пометить его так же, как это делает сборка docker. Предполагая, что это последний шаг в вашей сборке, поместите все другие команды (которые не нуждаются в томе) в Dockerfile, а затем сделайте следующее:

tmp_img=`docker build .`
tmp_container=`docker run -v $my_ext_volume:$my_mount_path --entrypoint=(your volume-dependent build command here) $tmp_img`
docker commit $tmp_container my_repo/image_tag:latest
docker rm "$tmp_container"

Это аналогично наличию команды RUN в Dockerfile, но с добавленным томом монтирования. Команда commit в этом примере также помечает изображение.

Это немного сложнее, если вам нужны другие команды Dockerfile после зависимой от тома, но в большинстве случаев вы можете комбинировать команды запуска и реорганизовать установку таким образом, чтобы оставить запуск вручную с последняя команда громкости, чтобы все было просто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...