当我创建一个Dockerfile来生成镜像时,在安装和构建东西时我有一些选择。
我可以做
RUN a && \
b && \
c
要么
COPY install.sh /install.sh
RUN /install.sh
install.sh
在哪里a
b
c
是否有充分的理由赞成一种方法优于另一种方法?
最佳答案
与其他答案相反,我通常更喜欢:
RUN a && \
b && \
c
主要原因是可以立即清楚发生了什么。如果改用脚本,则可以有效地隐藏代码。为了让新用户了解正在发生的事情,他们现在需要先查找具有构建上下文的项目,然后才能调查您的脚本。
这是一个折衷,一旦事情变得太复杂,就应该重构为脚本。但是,您可能更喜欢从已知位置对脚本进行
curl
,而不是对其进行COPY
,以便Dockerfile
保持独立。关于docker - 有什么理由比运行脚本更喜欢串联的RUN指令吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32855776/