Скопируйте файлы внутри образа докера во время сборки

Я хочу создать образ докера на основе dockerage/apache-mellon. у которого есть том на /var/www. Я хочу создать свое веб-приложение внутри контейнера докеров, когда я создаю его во временном каталоге, а затем копирую файлы в /var/www с помощью следующих команд в моем файле Docker:

WORKDIR /tmp
COPY . /tmp
RUN ./node_modules/gulp/bin/gulp.js
RUN cp -R /tmp/dist/ /var/www

Процесс сборки докера завершается без ошибок, но файлы не копируются в /var/www. Есть ли способ скопировать файлы в место, которое во время сборки объявлено как том докера?


person Oskar Jauch    schedule 24.06.2016    source источник


Ответы (1)


Вы не можете сделать это во время сборки. Объем — это то, что взаимодействует с контейнерами, а не с изображениями. Вы можете создать сценарий точки входа, который копирует файлы на том при запуске контейнера, но я не уверен, что это будет хорошим решением.

person Derek    schedule 24.06.2016
comment
Имеет ли значение, копирую ли я файлы внутри образа или с хоста в образ? Потому что в моем предыдущем решении я просто скопировал файлы в образ после того, как собрал их на своем хосте, и он отлично работал с: RUN mkdir /var/www/[app_name] COPY ./dist/ /var/www/[app_name]/ Но мне не очень нравится это решение, потому что вам нужно выполнить другие шаги сборки, прежде чем вы сможете запустить docker build.. - person Oskar Jauch; 24.06.2016
comment
Это не имеет значения. При первом запуске контейнера из этого образа файлы будут там, потому что том будет создан. Но как только он будет создан, копирование на него файлов из Dockerfile ничего не даст, если вы сначала не удалите том. - person Derek; 24.06.2016