我使用boot2docker并希望使用Dockerfile构建一个简单的docker镜像:
# 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 存在并可在我构建dockerfile的机器上访问。
问题是我得到的构建内部
Failed: FileNotFoundException[/c/Users/buliov1/dev/elastic/plugins/marvel-latest.zip (No such file or directory)]
。
我搜索了文档,我看到的唯一解决方案是使用ADD / COPY并首先复制图像中的文件,然后运行使用该文件的命令。 我不知道docker build是如何工作的,但有没有办法构建它而不先复制文件?
答案 0 :(得分:2)
docker build
进程在 Docker容器中运行,无法访问主机文件系统。将文件导入构建环境的唯一方法是使用ADD
或COPY
机制(或通过使用例如curl
或{{1}在网络上获取它们。或者什么)。