我有一个简单的项目,具有以下结构:
docker/
|- src/
| |- config.json
|
|- Dockerfile
json文件的内容:
{
"setting": "value"
}
Dockerfile的内容:
FROM python:3.5
ADD src/config.json /testapp/config.json # Config
我运行此构建命令:
docker build -t testapp:dev .
得到这个结果:
Sending build context to Docker daemon 4.608 kB
Step 1 : FROM python:3.5
---> 1d0326469b55
Step 2 : ADD src/config.json /testapp/config.json
lstat testapp/config.json: no such file or directory
为什么会失败?为什么未找到的项目是testapp/config.json
?在过去,我使用过这个确切的构造,例如,将requirements.txt
文件复制到临时工作目录中。我不明白我错过了ADD
如何工作导致失败的原因。谁能解释一下?
答案 0 :(得分:2)
我成了IDE的受害者。这一行将失败:
ADD src/config.json /testapp/config.json # Config
但这会成功:
ADD src/config.json /testapp/config.json
阅读documentation for add,它似乎正在尝试使用Config
作为目标目录,因此/testapp/config.json
被视为源文件。 IDE使# Config
变灰,让我觉得它被视为评论:Dockerfiles不会进行内联注释。
这在comments上的Docker文档中有所介绍:
Docker会将以#开头的行视为注释。行中任何其他位置的#标记将被视为参数。