kubernetes Docker映像比简单的python服务大得多

qmelpv7a  于 2023-01-01  发布在  Kubernetes
关注(0)|答案(2)|浏览(91)

我创建了一个简单的Python服务,它连接了RabitMQ和Mattermost。当我尝试构建Docker映像时,我注意到映像太大了(916 MB)。
我首先创建了没有.dockerignore文件的图像。之后删除了图像,并通过命令docker image build --no-cache --pull -t "gitlab-service" .再次创建了图像,但大小仍然相同。
我在https://github.com/lucasscheepers/gitlab-service上上传了整个gitlab-service项目
我创建的Dockerfile中是否存在错误?

yx2lnoni

yx2lnoni1#

您正在使用一个非常大的基础映像,因此您具有该大小是正常的。
如果您使用python:3.8映像是因为您需要一些包来编译依赖项,那么您可以利用多阶段构建并使用python:3.8编译/下载依赖项,但使用python:3.8-slim来服务您的应用程序,python:3.8-slim要轻得多:

FROM python:3.8 as build

WORKDIR /usr/app
RUN python -m venv /usr/app/venv
ENV PATH="/usr/app/venv/bin:$PATH"

COPY requirements.txt .
RUN pip install -r requirements.txt && rm requirements.txt

FROM python:3.8-slim
RUN groupadd -g 999 python && \
    useradd -r -u 999 python -g python
RUN mkdir /usr/app && chown python:python /usr/app
WORKDIR /usr/app

COPY --chown=python:python --from=build /usr/app/venv ./venv
COPY --chown=python:python . .

USER 999

ENV PATH="/usr/app/venv/bin:$PATH"

EXPOSE 8088
ENTRYPOINT [ "python", "main.py"]

我都是从你的GitHub项目中构建的:

❯ docker images | grep gitlab-service
gitlab-service        after        f2c1d1fab6fd   4 seconds ago   140MB
gitlab-service        before       b3e87980bccb   6 minutes ago   916MB
krugob8w

krugob8w2#

您使用的是python:3.8基础映像,它本身就是909MB,因此您的映像大小在该范围内完全合理。

相关问题