基于 ruby slim-bullseye 和 libvips-dev 的 Ror 实现巨大的 docker 镜像大小

问题描述 投票:0回答:1

我正在使用

ruby:3.1.3-slim-bullseye
来 dockerize Rails 7 应用程序。

图像大小约为2Gb,没有明确原因。

我正在使用使用 vips 的主动存储(这就是我使用 libvips-dev 的原因)。

我尝试用

docker history
检查图像层, 输出表明与这些 docker 命令相关的两个巨大层。

RUN bash -c "set -o pipefail && apt-get install -y --no-install-recommends build-essential curl git libpq-dev  "

RUN bash -c "set -o pipefail && apt-get install -y libvips-dev"

docker history my_image --no-trunc

的输出
..... other entries 


sha256:bf2ec68f81ba5fea38089b6a09d60786f296776b76f8083c9e3c94eae64533f5   24 minutes ago   |3 GID=1000 NODE_ENV=production UID=1000 /bin/sh -c bash -c "set -o pipefail && apt-get install -y libvips-dev"       667MB

sha256:1f778f131d692203d3918ea0fbc8e91c2466fadc7bd42ac8d333b8cf34cdae2b   25 minutes ago   |3 GID=1000 NODE_ENV=production UID=1000 /bin/sh -c bash -c "set -o pipefail && apt-get install -y --no-install-recommends build-essential curl git libpq-dev  "           258MB


...... other entries 

我的 Dockerfile

FROM ruby:3.1.3-slim-bullseye
WORKDIR /app

.... Other docker entries

#
RUN bash -c "set -o pipefail  && apt-get update "

RUN bash -c "set -o pipefail && apt-get install -y --no-install-recommends build-essential curl git libpq-dev  "

RUN bash -c "set -o pipefail && apt-get install -y libvips-dev"

RUN bash -c "set -o pipefail &&  groupadd -g \"${GID}\" ruby && useradd --create-home --no-log-init -u \"${UID}\" -g \"${GID}\" ruby"

RUN bash -c "set -o pipefail  \
  && chown ruby:ruby -R /node_modules /app \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/* /usr/share/doc /usr/share/man "

.... Other docker entries


apt-get install
出了什么问题,导致libvips-dev占用了667MB
build-essential curl git libpq-dev
占用了258MB

ruby-on-rails ruby docker rails-activestorage libvips
1个回答
0
投票

我在 ruby-vips 上提出了一个问题 (https://github.com/libvips/ruby-vips/issues/370#issuecomment-1716933820)。

以下是建议:

1 - 我们可以使用普通的

libvips-dev
,而不是安装
libvips
。 (最初不知道使用
libvips-dev
的确切原因)

2 - 将

--no-install-recommends
添加到命令

所以命令是

apt-get install -y --no-install-recommends libvips

现在的图像层大小为130MG,与667MB相比,这是ok

© www.soinside.com 2019 - 2024. All rights reserved.