【发布时间】:2017-05-26 23:46:46
【问题描述】:
我有一个 Dockerfile,其中包含以下指令:
FROM node:alpine
RUN cd /tmp && \
# several lines downloading/installing packages from zips
...
ADD src/config.json /myapp/config.json
WORKDIR /myapp
这旨在从应用程序存储库的根目录运行以构建 docker 容器。 RUN 命令被放在早期,因为它正在获取应用程序依赖项,这在逻辑上应该在流程的早期发生。 (它还将一堆命令链接在一起以保持较低的层数。)但是,ADD 命令预计与 Dockerfile 位于同一位置 - 存储库的根目录。
鉴于此,有没有办法“记住” docker build 从哪里开始,并使用它来定位ADD? (具体来说,在本地开发环境中运行它会在构建时与我的构建服务器有不同的whereami。)还是我坚持交错这些命令,首先复制配置,然后下载依赖项,等等?
当我构建时,我从项目的根目录(包含src 文件夹)执行此操作:
docker build -t myapp:dev .
我得到的错误是:
lstat src/config.json: 没有这样的文件或目录
如果我插入RUN pwd,docker build 会将其报告为/,但我不知道这是否是它认为的“上下文”(也就是说,任何ADD 命令都相对于@ 987654331@).
【问题讨论】:
标签: docker