我正在从Dockerfile构建一个简单的映像:(请注意,$towns = Towns::with('district.province')->groupBy('province_id')->get();
是该Dockerfile所在的文件夹的名称)
pm3
我使用FROM continuumio/miniconda3
MINTAINER Jordan Miller
ENV PORT=5000
COPY . /opt/repos/
WORKDIR /opt/repos/pm3/
RUN ls -la
RUN python /opt/repos/pm3/lib/acquire_requirements.py
EXPOSE $PORT
ENTRYPOINT ["python","/opt/repos/pm3/src/web/api.py"]
来构建它。现在,我认为上周效果很好,但是我进行了一些更改,但还是失败了。因此我运行docker build -f Dockerfile -t jm/pm3 .
来清理所有内容。但这并不能解决问题,因此我认为代码有问题。
无论如何,这是我得到的错误:
docker system prune
但是确实存在,在我的Windows计算机中,Step 7/9 : RUN python /opt/repos/pm3/lib/acquire_requirements.py
---> Running in f842a282a6a0
Invalid requirement: '/opt/repos/pm3/lib/acquire_requirements.py'
File '/opt/repos/pm3/lib/acquire_requirements.py' does not exist.
文件夹中有一个lib
文件夹,而pm3
文件夹中有一个acquire_requirements.py
。我不应该在linux盒中包含整个路径吗?
我在错误提示之后加上了行lib
,因为我想查看它是否正确复制到了文件夹中。但是输出结果并没有显示复制的内容,而是显示了一个空文件。所以我真的不明白发生了什么。如果工作目录确实是RUN ls -la
,那么在运行/opt/repos/pm3
时我应该不会看到src
吗?
我希望这里缺少关于Linux或Docker的明显信息。有什么想法吗?
答案 0 :(得分:0)
因此,我通过创建一个没有RUN python /opt/repos/pm3/lib/acquire_requirements.py
的映像发现,在名为/opt/repos/
的{{1}}之后,它并没有创建文件夹,就像Dockerfile的根目录一样。>
所以我不得不手动将其添加到命令中:
pm3
-> COPY . /opt/repos/