对镜像精简
dive工具,用来优化镜像大小
ENV命令合并
ENV DEBUG_PORT=8777 \
HTTP_PORT=12080 \
PROGRAM_FILE_HOME_UPORTAL_CONF=/home/zenap/uportal/conf
WORKDIR usr/src/app,会切换到这个目录
使用COPY --chown 修改属主,不要使用RUN chown
容器内非root运行业务,要对目录和文件chown,增加镜像大小。构建镜像时,使用COPY --chown,使用 buildkit 或docker v17.x及以上版本。
由于PaaS使用docker v1.12.6,使用高于v1.12.6的docker版本,构建镜像有可能出现不兼容的问题。
错误示例:
COPY data /home/conf
RUN addgroup -g 1340 -S app
&& adduser app -D -s /sbin/nologin -G app -u 1340
&& mkdir /home/conf
&& chown -R app:app /home/conf
正确示例:
RUN addgroup -g 1340 -S app
&& adduser app -D -h /home/app -s /sbin/nologin -G app -u 1340
COPY --chown=app:app data /home/app/conf