求教这个 DockerFile 如何优化下镜像大小

2021-06-09 11:17:22 +08:00
 kestrelBright
FROM daocloud.io/library/ubuntu:18.04

ENV HOME /home
ENV DEBIAN_FRONTEND noninteractive
ENV INITRD No

RUN set -eux; \
    apt-get update; \
    apt-get install -y locales; \
    locale-gen en_US.utf8; \
    rm -rf /var/lib/apt/lists/*
ENV LANG en_US.utf8
ENV LANGUAGE en_US.utf8

RUN set -eux; \
    apt-get update; \
    apt-get install -y apt-file; \
    apt-file update; \
    apt-get install -y software-properties-common; \
    apt-get install -yq --no-install-recommends vim libboost-all-dev gcc-4.8; \
    add-apt-repository -y ppa:ondrej/php; \
    apt-get update -y; \
    apt-get install -y curl wget openssl php7.2 php7.2-bcmath php7.2-cli php7.2-cgi php7.2-common php7.2-dev php7.2-apcu php7.2-geoip php7.2-fpm php7.2-json php7.2-memcached php7.2-memcache php7.2-mysql php7.2-pgsql php7.2-mongo php7.2-sqlite php7.2-sybase php7.2-interbase php7.2-odbc php7.2-ldap php7.2-gmp php7.2-intl php7.2-imagick php7.2-gd php7.2-imap php7.2-curl php7.2-oauth php7.2-redis php7.2-enchant php7.2-xml php7.2-xmlrpc php7.2-tidy php7.2-recode php7.2-readline php7.2-zip php7.2-pspell php7.2-mbstring php7.2-swoole; \
    rm -rf /var/lib/apt/lists/*

# Tidy up
RUN set -eux; \
    apt-get -y autoremove; \
    apt-get clean; \
    apt-get autoclean; \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

RUN mkdir -p /usr/share/nginx/html && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# Allow mounting files
VOLUME ["/usr/share/nginx/html"]
# Set the work directory
WORKDIR /usr/share/nginx/html
CMD ["php-fpm7.2", "-F"]
EXPOSE 9000
2399 次点击
所在节点    Docker
26 条回复
maxbon
2021-06-09 16:51:45 +08:00
ENV 放一起,RUN 放一起,理论上 RUN 只能有一条,多了就大很多,另外有 apt-get 操作的话,最后一步清缓存,RUN 的最后一步永远是删临时文件和清缓存
everyx
2021-06-09 16:54:22 +08:00
@kestrelBright 那就只能修改 base image 了
kestrelBright
2021-06-09 17:05:10 +08:00
@everyx base image 很小也,只有 63.3mb ,我最开始的 DockerFile 弄出来镜像 1.5g ,现在 899mb
kestrelBright
2021-06-10 09:32:26 +08:00
@mohuishou 基础镜像只有 63mb 也,能请教下这个怎么在 build 阶段从临时镜像复制不?是不是就是把安装好 php 和那些扩展复制到基础镜像?
kestrelBright
2021-06-10 09:33:57 +08:00
@maxbon 嗯嗯,这样可以减小大概 1/3
maxbon
2021-06-10 13:51:57 +08:00
@kestrelBright 你拿 ubuntu 做基础镜像就离谱,不过既然一定要用,可以卸载掉一些没用的服务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/782347

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX