Ссылки на файлы внутри сборки (Docker)
Я использую boot2docker и хочу создать простой образ докера с помощью Dockerfile:
# Pull base image.
FROM elasticsearch
# Install Marvel plugin
RUN \
&& export ES_HOME=/usr/share/elasticsearch \
&& cd $ES_HOME \
&& bin/plugin -u file:///c/Users/buliov1/dev/elastic/plugins/marvel-latest.zip -i elasticsearch/marvel/latest
Путь /c/Users/buliov1/dev/elastic/plugins/marvel-latest.zip присутствует и доступен на компьютере, где я создаю файл Docker. Проблема в том, что внутри сборки я получаю Failed: FileNotFoundException[/c/Users/buliov1/dev/elastic/plugins/marvel-latest.zip (No such file or directory)]
,
Я искал документацию, и единственное решение, которое я вижу, это использовать ADD/COPY и сначала скопировать файл внутри изображения, а затем запустить команду, которая использует файл. Я не знаю, как именно работает сборка docker, но есть ли способ собрать ее без предварительного копирования файла?
1 ответ
docker build
процесс выполняется внутри контейнеров Docker и не имеет доступа к файловой системе хоста. Единственный способ загрузить файлы в среду сборки - использовать ADD
или же COPY
механизм (или путем извлечения их по сети, используя, например, curl
или же wget
или что-то).