在virtualenv python3 -m venv FLSK-ENV
Dockerfile:
FROM appcontainers/ubuntu:xenial
MAINTAINER user <user>
RUN apt-get install -y software-properties-common \
&& add-apt-repository ppa:jonathonf/python-3.6 -y \
&& apt-get update -y \
&& apt-get install -y python3.6-minimal python3.6-venv \
&& apt-get install -y git \
&& apt-get install python-pip -y \
&& pip install --upgrade pip \
&& pip install gunicorn \
&& mkdir -p /home/EZMOVE
WORKDIR /home/workdir
RUN git clone -b develop --single-branch http://repo
RUN ["chmod", "+x", "./prepareenv.sh"]
RUN /bin/bash -c "source prepareenv.sh"
EXPOSE 5000
因此,Dockerfile将从&#34; appcontainers / ubuntu:xenial &#34;中拉出最小的ubuntu-16.04。并将仅更新和安装所需的软件包,如:
1. python3.6
2. git
3. python-pip
4. gunicorn
然后它会执行&#39; prepareenv.sh &#39;创建python3.6虚拟环境,激活venv,然后使用pip安装requirements.txt,然后它将公开端口,gunicorn将为Flask应用程序提供服务。等。
但在创建图像时,泊坞窗图像大小从70MB增加到550MB。
安装软件包时,它正在安装其他软件包,如下所示:
The following additional packages will be installed:
binutils build-essential bzip2 cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc
gcc-5 gcc-5-base libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6 libc6-dev
libcc1-0 libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot
libfile-fcntllock-perl libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0
libmpc3 libmpfr4 libmpx0 libpython-all-dev libpython-dev libpython-stdlib
libpython2.7 libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib
libquadmath0 libstdc++-5-dev libstdc++6 libtsan0 libubsan0 linux-libc-dev
make manpages manpages-dev python python-all python-all-dev python-dev
python-minimal python-pkg-resources python-setuptools python-wheel python2.7
python2.7-dev python2.7-minimal
Suggested packages:
binutils-doc bzip2-doc cpp-doc gcc-5-locales debian-keyring g++-multilib
g++-5-multilib gcc-5-doc libstdc++6-5-dbg gcc-multilib autoconf automake
libtool flex bison gdb gcc-doc gcc-5-multilib libgcc1-dbg libgomp1-dbg
libitm1-dbg libatomic1-dbg libasan2-dbg liblsan0-dbg libtsan0-dbg
libubsan0-dbg libcilkrts5-dbg libmpx0-dbg libquadmath0-dbg glibc-doc locales
libstdc++-5-doc make-doc man-browser python-doc python-tk
python-setuptools-doc python2.7-doc binfmt-support
The following NEW packages will be installed:
binutils build-essential bzip2 cpp cpp-5 dpkg-dev fakeroot g++ g++-5 gcc
gcc-5 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan2 libatomic1 libc-dev-bin libc6-dev libcc1-0
libcilkrts5 libdpkg-perl libexpat1-dev libfakeroot libfile-fcntllock-perl
libgcc-5-dev libgomp1 libisl15 libitm1 liblsan0 libmpc3 libmpfr4 libmpx0
libpython-all-dev libpython-dev libpython-stdlib libpython2.7
libpython2.7-dev libpython2.7-minimal libpython2.7-stdlib libquadmath0
libstdc++-5-dev libtsan0 libubsan0 linux-libc-dev make manpages manpages-dev
python python-all python-all-dev python-dev python-minimal python-pip
python-pkg-resources python-setuptools python-wheel python2.7 python2.7-dev
python2.7-minimal
The following packages will be upgraded:
gcc-5-base libc6 libstdc++6
3 upgraded, 59 newly installed, 0 to remove and 24 not upgraded.
Need to get 76.6 MB of archives.
After this operation, 210 MB of additional disk space will be used.
那么如何减少Docker镜像大小呢?
答案 0 :(得分:1)
尝试以下Dockerfile,它将图像的大小降低到255 MB。 &#34; - 无需安装-建议&#34;确保只安装所需的软件包和&#34; rm -rf / var / lib / apt / lists / *&#34;清理包括任何索引文件。
FROM appcontainers/ubuntu:xenial
RUN apt-get update \
&& apt-get install -y --no-install-recommends software-properties-common \
&& add-apt-repository -y ppa:jonathonf/python-3.6 \
&& apt-get update \
&& apt-get install -y --no-install-recommends python3.6-minimal python3.6-venv \
&& apt-get install -y --no-install-recommends git \
&& apt-get install -y --no-install-recommends python-pip \
&& pip install --upgrade pip \
&& pip install gunicorn \
&& rm -rf /var/lib/apt/lists/* \
&& mkdir -p /home/EZMOVE
WORKDIR /home/workdir
EXPOSE 5000