[英]Different ways of installing Python packages to docker image
我想基於已安裝一些 Python 包的現有鏡像創建一個 Docker 鏡像。 所以我正在考慮在 Dockerfile 中使用pip
來為圖像安裝額外的包。 看起來我可以單獨安裝它們,例如:
RUN pip install foo==1.2.*
RUN pip install bar==3.4.*
...
或者將它們放在requirements.txt
中並執行如下操作:
COPY requirements.txt /opt/app/requirements.txt
WORKDIR /opt/app
RUN pip install -r requirements.txt
我想知道哪種方式被認為是更好的做法(即性能更高和/或導致圖像更小)。
我需要一種更快並導致更小圖像尺寸的方法
使用高山和多階段構建。 例子:
FROM python:3.7-alpine as base
FROM base as builder
RUN mkdir /install
WORKDIR /install
COPY requirements.txt /requirements.txt
RUN pip install --install-option="--prefix=/install" -r /requirements.txt
FROM base
COPY --from=builder /install /usr/local
COPY src /app
WORKDIR /app
CMD ["gunicorn", "-w 4", "main:app"]
來源: https ://blog.realkinetic.com/building-minimal-docker-containers-for-python-applications-37d0272c52f3
這是一個復雜的問題,兩種選擇都有其優點和缺點。 讓我們根據計算資源、依賴鏈、用戶友好性等來擴展方法。
方法一:在requirements.txt中添加包
方法二:在部署好的容器上使用pip
結論
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.