首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Docker容器映像在Ubuntu16.04上部署Python3.6、Virtualenv、Flask、Gunicorn时变得如此庞大?

为什么Docker容器映像在Ubuntu16.04上部署Python3.6、Virtualenv、Flask、Gunicorn时变得如此庞大?
EN

Stack Overflow用户
提问于 2017-10-17 08:33:55
回答 1查看 1.6K关注 0票数 1

在virtualenv python3 -m venv FLSK-ENV中部署烧瓶应用程序时

Dockerfile:

代码语言:javascript
复制
    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将从"appcontainers/ubuntu:xenial“中提取最小的ubuntu-16.04,并且只更新和安装以下所需的软件包:

代码语言:javascript
复制
 1. python3.6
 2. git
 3. python-pip
 4. gunicorn

然后,它将执行'prepareenv.sh‘来创建python3.6虚拟环境,激活venv,然后使用pip安装requirements.txt,然后它将公开端口并向application..etc提供服务。

,但是在创建映像时,码头映像大小从70 to增加到550 to.

在安装软件包时,它正在安装其他软件包,如下所示:

代码语言:javascript
复制
    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.

那么如何缩小码头形象大小呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-17 09:12:52

尝试下面的Dockerfile,它将图像的大小降低到255 MB。“--不安装--建议”确保只安装所需的包,并且"rm -rf /var/lib/apt/list/*“清除包含任何索引文件。

代码语言:javascript
复制
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
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46785846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档