Docker 在容器内运行shell脚本并将其删除?

Docker 在容器内运行shell脚本并将其删除?,docker,dockerfile,Docker,Dockerfile,在Docker容器中运行大量shell命令的正确方法是什么 它是包含大量的RUN语句,还是将所有内容都放入.sh文件并运行它更好 e、 g.这是我现在得到的: FROM php:latest COPY install-composer /tmp/ RUN /tmp/install-composer RUN rm /tmp/install-composer 我觉得有点尴尬,我必须将shell脚本复制到容器中,运行它,然后手动处理它 在容器的上下文中执行shell脚本而不将其复制到容器中是没有办

在Docker容器中运行大量shell命令的正确方法是什么

它是包含大量的
RUN
语句,还是将所有内容都放入
.sh
文件并运行它更好

e、 g.这是我现在得到的:

FROM php:latest

COPY install-composer /tmp/
RUN /tmp/install-composer
RUN rm /tmp/install-composer
我觉得有点尴尬,我必须将shell脚本复制到容器中,运行它,然后手动处理它


在容器的上下文中执行shell脚本而不将其复制到容器中是没有办法的?

一种常见的方法是使用长
run
语句运行(这将在图像中生成较少的层)

这是一次长时间的
运行
我使用过:

运行\
apk添加--更新$RUN\u DEP&&\
rm-rf/var/cache/apk/*&&\
mkdir-pv/run/nginx/config/data&&\
chown 65534:65534/config/data&&\
ln-sv/dev/stdout/var/log/php-fpm.log&&\
ln-sv/dev/stdout/var/log/nginx/access.log&&\
ln-sv/dev/stderr/var/log/nginx/error.log&&\
ln-svfn/config/usr/share/webapps/owncloud/config&&\
ln-svfn/data/usr/share/webapps/owncloud/data&&\
adduser nobody www数据

Oy,这看起来很难维护。他们为什么不为这个添加一个方便的包装?