Если под «сборкой образа 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 после зависимой от тома, но в большинстве случаев вы можете комбинировать команды запуска и реорганизовать установку таким образом, чтобы оставить запуск вручную с последняя команда громкости, чтобы все было просто.