python - GCP 上的 Docker 映像:在哪里复制 Python 脚本所需的文件
问题描述
我有一个 Python 脚本,它需要 OpenCV 的 haarcascade.xml 文件来进行面部识别。我使用以下 Dockerfile 在 Kubernetes(Google Cloud Platform)上成功构建并推送了 Docker 映像:
FROM python:3.7
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY . ./
RUN apt-get update && apt-get install -y sudo && rm -rf /var/lib/apt/lists/*
RUN sudo apt-get update && sudo apt-get install -y apt-utils build-essential cmake && sudo apt-get install -y libgtk-3-dev && sudo apt-get install -y libboost-all-dev && sudo apt-get install -y default-libmysqlclient-dev
RUN pip install setuptools mysqlclient cmake Flask gunicorn pybase64 google-cloud-vision google-cloud-storage protobuf nltk fuzzywuzzy PyPDF2 numpy python-csv google-cloud-language pandas SQLAlchemy PyMySQL pytz Unidecode torch tensorflow==1.15 transformers imutils scikit-learn scikit-image scipy==1.4.1 opencv-python text2num sklearn
RUN pip install dlib
COPY app.py ./app.py
COPY haarcascade_frontalface_default.xml ./haarcascade_frontalface_default.xml
CMD ["python", "./app.py"]
在 Python 笔记本中,我有没有路径的 haarcascade.xml 文件:
def face_recog(image):
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
img = cv2.imread(image)
pod 运行平稳,没有错误,没有重新启动,但是这部分代码由于“丢失”haarcascade 文件而无法正常工作。
我知道我有两个选择:
- 将 haarcascade 的完整路径放在 notebook 中(我不知道给出的是 Docker 镜像)
- 修复 Dockerfile 中的 COPY haarcascade.xml 文件,以便 Python 脚本找到它。
任何帮助表示赞赏。
解决方案
推荐阅读
- python - 有效地将 df 列缩放为零
- javascript - 为 Highcharts 中堆积条形图中的每个堆栈赋予不同的颜色
- php - 日期选择器中未来日期的无效日期错误
- xaml - 如果内容按行方向放置,如何减少 Flex 布局中内容之间的空间?
- mongodb - 聚合 `$lookup` 在 MongoDB 中不起作用
- xml - xslt:如果值喜欢,则复制节点
- android-studio - 我们可以在 android studio 中将音频 (.mp3) 转换为视频 (mp4) 吗?如何?
- visual-studio - 如何发布更新到 Visual Studio 扩展?
- dart - 将flutter代码的一部分创建为小部件和变量有什么区别
- python - 过滤包含列表的数据框中的列