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

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

python/flask 應用程序 dockerization 期間出現問題

python/flask 應用程序 dockerization 期間出現問題

largeQ 2023-09-19 17:38:09
這是當前的場景、docker 文件、要求和錯誤。有什么線索嗎?這是一個帶有 Flask 的大型 Python Web 應用程序,我們希望對其進行 dockerize。該問題發生在 pandas-profiling lib 依賴項安裝期間,特別是 kiwisolver。見下文。Dockerfile:FROM python:3.8-alpineRUN adduser -D ddc-userWORKDIR /ddcCOPY . /ddcRUN python -m venv venvRUN venv/bin/pip install --upgrade pipRUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories \     && apk --no-cache --update-cache add postgresql-dev g++ linux-headers gfortran libffi-dev openssl-dev gcc build-base bash libpng-dev openblas-dev wget freetype-dev python3-dev py3-pip \     && ln -s /usr/include/locale.h /usr/include/xlocale.h \     && pip install setuptools wheel \     && pip install numpy pyyamlRUN apk add --no-cache --virtual .build-deps gcc musl-devRUN pip install cythonRUN apk del .build-deps gcc musl-devRUN venv/bin/pip install -r requirements.txtRUN chmod +x boot.shENV FLASK_APP main.pyRUN chown -R ddc-user:users ./USER ddc-userEXPOSE 5000ENTRYPOINT ["./boot.sh"]要求.txt:alembic==0.9.9blinker==1.4chardet==3.0.4click==6.7Flask==1.0.2Flask-Dance==0.14.0Flask-DebugToolbar==0.10.1Flask-Login==0.4.1Flask-Migrate==2.1.1Flask-OAuth==0.12Flask-OAuthlib==0.9.4Flask-SQLAlchemy==2.3.2Flask-WTF==0.14.2httplib2==0.11.3idna==2.6itsdangerous==0.24Jinja2>=2.11.1lazy==1.3Mako==1.0.7MarkupSafe==1.1.1oauth2==1.9.0.post1oauthlib==2.0.7python-dateutil>=2.7.3python-editor==1.0.3requests==2.23.0requests-oauthlib==0.8.0SQLAlchemy==1.3.13SQLAlchemy-Utils==0.33.2urllib3==1.22URLObject==2.4.3Werkzeug==0.14.1wincertstore==0.2WTForms==2.1Blueprint==3.4.2google-cloud>=0.34.0google-cloud-storage>=1.24.1google-cloud-bigquery>=1.23.1Flask-Bootstrap==3.3.7.1six==1.13.0flask-mail>=0.9.1Markdown==2.6.8itsdangerous==0.24bleach==2.0.0Flask-SSLify==0.1.5gunicorn==19.7.1gcsfs==0.3.0cffi==1.13.2pandas>=0.25.3psycopg2==2.7.3cloudstorage==0.10.0vdm==0.15xlrd>=1.0.0schedule==0.6.0Flask-HTTPAuth>=4.1.0boto3==1.14.58fsspec==0.8.2pandas-profiling==2.9.0
查看完整描述

2 回答

?
慕桂英3389331

TA貢獻2036條經驗 獲得超8個贊

您正在混合調用“系統” pip/python和虛擬環境中的副本。


# In the "system" Python

RUN pip install setuptools wheel

# In the virtual environment

RUN venv/bin/pip install -r requirements.txt

由于 Docker 映像已經位于與任何特定主機系統的 Python 安裝分開的隔離環境中,因此通常將內容安裝到映像內的“系統”Python 中,而不使用虛擬環境。刪除創建虛擬環境的行,并使用 justpip或pythonovervenv/bin/...替代方案。


# Remove this line

# RUN python -m venv venv

# Use "pip", not "venv/bin/pip"

RUN pip install --upgrade pip

RUN pip install setuptools wheel

RUN pip install -r requirements.txt


查看完整回答
反對 回復 2023-09-19
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

您的環境無權訪問wheel. 您應該能夠通過添加以下行來解決此問題:

RUN pip install wheel

在嘗試安裝需求文件之前,將其添加到您的 dockerfile 中。

編輯:我錯過了這里使用的虛擬環境。我認為在這種情況下使用虛擬環境是不必要的,除非OP 使用他們的 docker 實例并行運行多個 python 應用程序。有一些使用此模式的案例,盡管這里似乎不是這種情況。因此,我的建議是完全取消venv并簡單地在 docker 實例 python 安裝中安裝所有依賴項,這會將每個venv/bin/pip調用轉換為簡單的pip調用。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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