我正在尝试修改包含以下代码的Dockerfile
:
ARG FILE_SOURCE_DIR
ADD ${FILE_SOURCE_DIR}/check-md5.sh /download/
ADD ${FILE_SOURCE_DIR}/app /app/
ADD ${FILE_SOURCE_DIR}/R/JRI.jar /download/
ADD ${FILE_SOURCE_DIR}/R/JRIEngine.jar /download/
ADD ${FILE_SOURCE_DIR}/R/REngine.jar /download/
我的构建环境如下所示:
\downloads
\images
\kafka
Dockerfile
我想传递FILE_SOURCE_DIR
作为相对路径(根据文档),但我无法正确使用语法 - 无论我尝试什么,我都会收到类似的错误:
ADD failed: stat /var/lib/docker/tmp/docker-builder187920988/downloads/check-md5.sh: no such file or directory
有时我会这样:
ADD failed: Forbidden path outside the build context: ../../downloads/check-md5.sh ()
我知道路径必须相对到上下文目录,但正如我所说,我尝试的任何东西似乎都不起作用:
"../../downloads"
"..\..\downloads"
"C:\path\downloads\"
Docker ADD命令是否仅限于上下文中的内容?如果是这样,如何在多个上下文中包含相同的文件?
答案 0 :(得分:0)
ADD遵守以下规则:
路径必须位于构建的上下文中 ...
答案 1 :(得分:0)
您可以使用-f。
指定Kafka文件夹外的Dockerfiledocker build -t tag-name -f images/kafka/Dockerfile .
这样您就可以访问下载文件夹