亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多階段 dockerfile:如何在沒有 --user pip3 參數的情況下安裝?

多階段 dockerfile:如何在沒有 --user pip3 參數的情況下安裝?

慕娘9325324 2023-09-19 17:18:59
我是碼頭工人的新手,我不完全確定為什么這是有效的。--user我嘗試在不提供pip3安裝文件的參數的情況下編寫 dockerfile requirements.txt,但由于某種原因,將安裝輸出從${INSTALL}目錄復制到${APP}目錄對我來說不起作用。我怎樣才能寫這個,這樣我就不需要依賴--user提供的參數pip3?現在使用上述參數是有效的,但我無法讓它做我想做的事情,這真的讓我煩惱。我使用以下命令構建圖像:docker image build --no-cache -t apptest .DockerfileFROM python:3.8-alpine as baseENV APP="/app"ENV INSTALL="/install"ENV LOC="/root/.local"ENV LOCBIN="${LOC}/bin"ENV PATH $PATH:${LOC}:${LOCBIN}FROM base as builderWORKDIR ${INSTALL}COPY ./requirements.txt requirements.txt#install all dependenciesRUN apk add --no-cache curl python3 pkgconfig python3-dev openssl-dev libffi-dev musl-dev make gccRUN pip3 install --user --no-cache-dir -r requirements.txtFROM baseCOPY --from=builder ${LOC} ${LOC}COPY --from=builder ${LOCBIN} ${LOCBIN}COPY ./src/ ${APP}COPY ./src/Cogs/ ${APP}/CogsCOPY ./src/Documentation/ ${APP}/DocumentationCOPY ./src/Models/ ${APP}/ModelsCOPY ./src/OneNight/ ${APP}/OneNightWORKDIR ${APP}#start the serviceENTRYPOINT [ "python3", "service.py" ]
查看完整描述

1 回答

?
波斯汪

TA貢獻1811條經驗 獲得超4個贊

  1. 當你安裝 Python 包時,代碼會到處都是。例如,庫進入站點包,腳本進入 bin/ 等。因此,您需要將所有內容安裝在一處,以便于復制。您的選擇--user基本上是虛擬環境,或者復制許多不同的目錄。

  2. 話雖如此,您可能不需要多階段構建。你想要一個在這里,因為你正在使用編譯器。但您可能只需要一個編譯器,因為您使用的是 Alpine Linux。對于普通的 Linux 發行版,大多數 Python 包在 PyPI 上都有二進制預編譯輪,所以很多時候你根本不需要編譯器。

切換到基于 Debian 的基礎映像 (?python:3.8-slim-buster) 很可能允許您無需編譯器即可安裝所有內容。


查看完整回答
反對 回復 2023-09-19
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號