6
在容器启动时,在Dockerfile中使用多个RUN命令来设置映像与单个CMD指令执行脚本的最佳做法是什么?多个运行指令与单个CMD在Dockerfile中执行安装脚本初始化容器
例如:
FROM centos:latest
RUN useradd myuser
RUN mkdir -p /usr/local/myapp
ADD ./resources/myapp.zip /usr/local/myapp
RUN unzip /usr/local/myapp/myapp.zip
RUN chown -R myuser:myuser /usr/local/myapp
CMD ["/usr/local/myapp/bin/app"]
与
FROM centos:latest
ADD ./resources/myapp.zip/
ADD ./resources/setup.sh/
RUN chmod +x /setup.sh
# setup.sh will create the user, extract the zip, execute the binary
CMD ["/setup.sh"]
谢谢!我没有考虑到每次从图像启动容器时都会运行setup.sh的事实。就我而言,“app”最好是图片的一部分,而不是每次都提取。 – Owen
@Owen这就是'CMD'的用途: https://docs.docker.com/engine/reference/builder/#cmd –