【发布时间】:2021-05-18 18:18:48
【问题描述】:
我正在使用带有 Cloud Build 的 Google Cloud Run,我希望从 Git 进行持续部署。我正在使用 Docker 文件通过 Google Cloud Buildpack 构建映像,因为我必须下载 Textblob Corpora (see topic)。
我不使用 Textblob 的应用程序的所有其他部分都有效。当我使用 Docker 制作一个容器以在本地(在我的电脑上)进行测试并运行时,一切正常。
我的 Docker 文件是:
# Use the official lightweight Python image.
# https://hub.docker.com/_/python
FROM python:3.8-slim
# Allow statements and log messages to immediately appear in the Knative logs
ENV PYTHONUNBUFFERED True
# Copy local code to the container image.
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./
# Build dependencies that you require for your pip installs
# Install production dependencies
# Remove packages
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc python3-dev python3-pip \
&& rm -rf /var/lib/apt/lists/* \
&& pip install --trusted-host pypi.python.org -r requirements.txt \
&& python -m textblob.download_corpora \
&& apt-get purge -y --auto-remove gcc python3-dev python3-pip
# Timeout is set to 0 to disable the timeouts of the workers to allow Cloud Run to handle instance scaling.
CMD exec gunicorn --bind :$PORT --workers 2 --threads 8 --timeout 0 index:server
我尝试了以下方法但没有成功:
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc pytho3n-dev python3-pip \
&& rm -rf /var/lib/apt/lists/* \
&& pip install --trusted-host pypi.python.org -r requirements.txt \
&& python -m textblob.download_corpora -d /usr/share/nltk_data \
&& apt-get purge -y --auto-remove gcc python-dev python3-pip
和
RUN apt-get update \
&& apt-get install -y --no-install-recommends gcc python3-dev python3-pip \
&& rm -rf /var/lib/apt/lists/* \
&& pip install --trusted-host pypi.python.org -r requirements.txt \
&& python -m nltk.downloader -d /usr/share/nltk_data movie_reviews \
&& apt-get purge -y --auto-remove gcc python-dev python3-pip
我该如何解决这个问题?
最好的,
维杰
编辑: 好像是Cloud Build下载到了根目录
[nltk_data] Downloading package movie_reviews to /root/nltk_data...
[nltk_data] Unzipping corpora/movie_reviews.zip.
但 Cloud Run 中的应用正在主目录中寻找它:
Default
2021-05-19T10:06:02.040268Z Searched in:
Default
2021-05-19T10:06:02.040277Z - '/home/nltk_data'
Default
2021-05-19T10:06:02.040287Z - '/usr/local/nltk_data'
Default
2021-05-19T10:06:02.040297Z - '/usr/local/share/nltk_data'
Default
2021-05-19T10:06:02.040308Z - '/usr/local/lib/nltk_data'
Default
2021-05-19T10:06:02.040317Z - '/usr/share/nltk_data'
Default
2021-05-19T10:06:02.040326Z - '/usr/local/share/nltk_data'
Default
2021-05-19T10:06:02.040334Z - '/usr/lib/nltk_data'
Default
2021-05-19T10:06:02.040343Z - '/usr/local/lib/nltk_data'
使用python -m nltk.downloader -d /usr/share/nltk_data movie_reviews 也不起作用。
【问题讨论】:
标签: python docker nltk google-cloud-run google-cloud-build