当我创建一个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/

10-16 23:51