在码头我想这样做:
git clone XYZ
cd XYZ
make XYZ
但是因为没有 cd 命令,所以我每次都必须传入完整路径(制作 XYZ /fullpath)。有什么好的解决方案吗?
原文由 RParadox 发布,翻译遵循 CC BY-SA 4.0 许可协议
在码头我想这样做:
git clone XYZ
cd XYZ
make XYZ
但是因为没有 cd 命令,所以我每次都必须传入完整路径(制作 XYZ /fullpath)。有什么好的解决方案吗?
原文由 RParadox 发布,翻译遵循 CC BY-SA 4.0 许可协议
要更改为另一个目录,请使用 WORKDIR 。 WORKDIR 之后的所有 RUN、CMD 和 ENTRYPOINT 命令都将从该目录执行。
RUN git clone XYZ
WORKDIR "/XYZ"
RUN make
原文由 Javier Castellanos 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答2.4k 阅读✓ 已解决
2 回答799 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答1.4k 阅读
1 回答1.6k 阅读
2 回答1.2k 阅读
1 回答962 阅读
你可以运行一个脚本,或者更复杂的参数给RUN。这是我之前下载的 Dockerfile 中的一个示例:
由于使用了 ‘&&‘,如果前面的所有命令都成功,它只会到达最后的 ‘pip install’ 命令。
事实上,由于每个 RUN 都会创建一个新的提交和(当前)一个 AUFS 层,如果 Dockerfile 中的命令太多,就会耗尽限制,因此合并 RUN(当文件稳定时)可能是一个非常有用的事情。