V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yazoox
V2EX  ›  Docker

为什么我的 dockerfile 生成的 image 越来越大?

  •  
  •   yazoox · 2018-09-05 10:26:37 +08:00 · 3751 次点击
    这是一个创建于 2256 天前的主题,其中的信息可能已经有所发展或是发生改变。

    项目上有个 dockerfile,每次跑 CI 的时候,都会跑这个,生成一个 image,然后运行之。

    过了半年,突然发现,这个生成的 image,已经从当初的 2.0+GB 增长到了 4.0+GB 了。太夸张了。

    可是这个 dockerfile 的文件内容,也没有修改。怎么 image 变化这么多了?

    有没有办法比较两个 image 文件?

    p.s. dockerfile FROM node:8.9.0

    不知道是不是因为里面 yarn install 相关的 packages,但是也不会增加这么多啊?使用的类库,也基本上半年没有啥变化了,就那些了,如果只是版本升级增加,不应该体积翻倍。

    第 1 条附言  ·  2018-09-05 11:43:24 +08:00
    # using a specific node version
    FROM node:8.9.0

    RUN \
    echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | debconf-set-selections && \
    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list && \
    echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list && \
    apt-get update && \
    apt-get install -y oracle-java8-installer && \
    rm -rf /var/lib/apt/lists/* && \
    rm -rf /var/cache/oracle-jdk8-installer

    # Define commonly used JAVA_HOME variable
    ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

    # set java 1.8 as the default
    RUN update-alternatives --config java

    # set WORKDIR for subsequent commands
    ENV WORKSPACE /workspace
    RUN mkdir -p $WORKSPACE
    COPY . $WORKSPACE/
    WORKDIR $WORKSPACE

    # Creating user jenkins
    RUN addgroup --gid 1001 jenkins
    RUN adduser --uid 1001 --gid 1001 --shell /bin/bash --home /home/jenkins --disabled-password jenkins
    RUN chown -R jenkins:jenkins $WORKSPACE
    USER jenkins

    ## install dependencies
    RUN yarn install --frozen-lockfile --offline
    RUN yarn run bootstrap
    3 条回复    2018-09-05 11:52:53 +08:00
    Vogan
        1
    Vogan  
       2018-09-05 10:29:52 +08:00
    你不贴 dockerfile 咋给你分析
    yazoox
        2
    yazoox  
    OP
       2018-09-05 11:43:44 +08:00
    @Vogan 把 dockerfile 贴上来了。
    orqzsf1
        3
    orqzsf1  
       2018-09-05 11:52:53 +08:00
    多条 run 尽量通过 && 合并,apt-get 的缓存可以清理一下。至于越来越大的话,是因为日志或者一些缓存文件吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   977 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 21:18 · PVG 05:18 · LAX 13:18 · JFK 16:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.