我創建了一個連接 RabitMQ 和 Mattermost 的簡單 Python 服務。當我嘗試構建 Docker 映像時,我注意到該映像太大 (916MB)
我首先在沒有 .dockerignore 檔案的情況下創建了影像。之后洗掉影像并通過命令再次創建影像docker image build --no-cache --pull -t "gitlab-service" .但大小仍然相同。
我在https://github.com/lucasscheepers/gitlab-service上傳了整個 gitlab-service 專案
我在創建的 Dockerfile 中做錯了什么嗎?
uj5u.com熱心網友回復:
您正在使用 python:3.8 基礎影像,它只有 909MB,因此您的影像大小在該范圍內是完全合理的。
uj5u.com熱心網友回復:
您正在使用一個非常大的基本影像,因此您具有該大小是正常的。
如果您使用python:3.8映像是因為您需要一些包來編譯您的依賴項,那么您可以利用多階段構建并編譯/下載依賴項,python:3.8但使用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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/346244.html
標籤:码头工人 Kubernetes 码头工人形象
上一篇:谷歌正式發布Android 12,UI更好看,應用更快,打造獨屬于自己的定制化屬性
下一篇:GO的Docker開發環境
