在Docker构建期间从外部绝对位置添加文件?
我试图修改一个在Docker构建期间从外部绝对位置添加文件?,docker,Docker,我试图修改一个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/RE
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
我的生成环境如下所示:
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\u SOURCE\u 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命令是否仅限于上下文中的内容?如果是,如何在多个上下文中包含同一个文件
ADD遵循以下规则:
路径必须在生成的上下文中从。可以使用-f指定Kafka文件夹外的Dockerfile
docker build -t tag-name -f images/kafka/Dockerfile .
这样您就可以访问下载文件夹了刚刚发现了这个问题。。。。看起来唯一的方法是从远程HTTP://URL添加文件。在我们的例子中,我们建立了一个Tomcat实例,并从中提取文件。从文档中:
如果是URL,并且没有以斜杠结尾,则从URL下载文件并复制到。