【发布时间】:2020-05-01 06:54:46
【问题描述】:
我正在构建一个烧瓶 api,并想为其创建一个 docker 映像。但是,当我执行 docker-compose run(构建后)时,它找不到模块。
错误:
api_1 | Traceback (most recent call last):
api_1 | File "app.py", line 6, in <module>
api_1 | from api.classify.classify import get_prediction
api_1 | ModuleNotFoundError: No module named 'api'
我的文件夹结构如下:
- api
-- classify
--- classify.py
-- app.py
-- Dockerfile
-- requirements.txt
-- setup.py
setup.py 如下所示:
from setuptools import setup, find_packages
setup(
name='image_api',
keywords='',
version='0.1',
packages=find_packages()
)
Dockerfile 看起来像这样:
FROM python:3
WORKDIR /user/src/app
ENV PYTHONPATH=/api
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
RUN python setup.py install
CMD ["python", "app.py"]
如何解决这个问题以及在构建 Docker 映像时安装自定义包的最佳做法是什么?
【问题讨论】:
标签: python docker docker-compose package dockerfile