Skip to content

减少 docker image 的体积 #114

Description

@icyleaf

当前 Docker 体积大小为 1.18G,image 本身基于只有 51MB 的 ruby:2.6-alpine 在构建和编译。通过使用 dive 分析结果最大体积消耗为:

  • yarn install 安装的 node_modules 依赖 541 MB
  • apk 安装依赖库(必备和编译必备) 386 MB
  • bundle install 安装的 rails 依赖 138 MB

第一个即使在使用完进行删除还是会保持体积的大小,第二个可以减少的是在所有依赖库安装成功后再做删除但会不会也存在第一个的问题,第三个是必备的如果能够把前面两个或者第一个减少掉提交也会骤降一倍我就很欣喜。搜索了一番找到一个解决方案也就是使用两个镜像其中第一个作为 builder 现在不太确定 yarn 和 bundle 依赖的库在编译后 COPY 到新 images 会不会抱错,这个不像是 go 可以静态编译或者动态编译然后在通过 ldd 把关联的动态库直接 COPY 过去那么简单。

Metadata

Metadata

Assignees

No one assigned

    Labels

    dependenciesPull requests that update a dependency file

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions