【问题标题】:Dockerfile not finding one of my includesDockerfile 找不到我的包含之一
【发布时间】:2015-08-22 08:49:27
【问题描述】:

刚接触 Docker 并一直在检查文档,但似乎这是对 Dockerfile 的一个合理的第一次尝试。

我正在运行以下 Dockerfile,但遇到了一些问题:

FROM iojs:onbuild
COPY ../../webserver/includes/masterconfig.js ../../webserver/includes/masterconfig.js

这可能是一个新手错误,但感谢您的帮助:)

docker build -t nearby-pushes .
Sending build context to Docker daemon 9.728 kB
Sending build context to Docker daemon
Step 0 : FROM iojs:onbuild
# Executing 3 build triggers
Trigger 0, COPY package.json /usr/src/app/
Step 0 : COPY package.json /usr/src/app/
 ---> Using cache
Trigger 1, RUN npm install
Step 0 : RUN npm install
 ---> Using cache
Trigger 2, COPY . /usr/src/app
Step 0 : COPY . /usr/src/app
 ---> 5f4c87e2362c
Removing intermediate container 16a8fb4b4be1
Step 1 : COPY ../../webserver/includes/masterconfig.js ../../webserver/includes/masterconfig.js
INFO[0010] ../../webserver/includes/masterconfig.js: no such file or directory

【问题讨论】:

    标签: node.js docker iojs


    【解决方案1】:

    ADDCOPY 指令无法查看父目录中的文件。 换句话说,您不能将它们与以../ 开头的文件路径一起使用。

    来自 Docker 文档:

    路径必须在构建的上下文中;您不能添加 ../something /something,因为 docker 构建的第一步是将上下文目录(和子目录)发送到 docker 守护进程。

    路径必须在构建的上下文中;你不能 COPY ../something /something,因为 docker build 的第一步是将上下文目录(和子目录)发送到 docker 守护进程。

    重要的词是构建的上下文。来自docker build 文档:

    从 Dockerfile 和“上下文”构建 Docker 映像。构建的上下文是位于指定 PATH 或 URL 中的文件。构建过程可以引用上下文中的任何文件。例如,您的构建可以使用 ADD 指令来引用上下文中的文件。

    【讨论】:

    • 与我得出的相同结论,感谢您的确认!
    【解决方案2】:

    错误显示在您的目录中找不到masterconfig.js。尝试使用绝对目录,dst 目录也使用绝对目录,例如 /masterconfig.js,例如

    FROM iojs:onbuild
    COPY absolutepath/webserver/includes/masterconfig.js /masterconfig.js
    

    或者确保dst目录存在,

    CMD mkdir -p /webserver/includes
    COPY absolutepath/webserver/incldues/masterconfig.js /webserver/incldues/maserconfig.js
    

    【讨论】:

    • 绝对路径似乎对我没有影响。
    • 抱歉,我们不能在 COPY 和 ADD 命令中使用绝对路径。 src 文件应该与你的 Dockerfile 相关。
    • 并且dst路径是绝对路径还是相对于WORKDIR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 2021-10-02
    • 2020-05-22
    相关资源
    最近更新 更多