【发布时间】:2019-10-29 07:53:52
【问题描述】:
我有一个烧瓶 python 3.7 应用程序,我想在 docker 和 Kubernetes 上运行。
我有以下 Docker 文件
这个工作(使用python鸡蛋)
FROM python:3-stretch
WORKDIR /app
ADD . /app/
RUN pip install -e .
EXPOSE 5000
CMD ["python", "myapp/application.py"]
但这不是(但我想坚持这个)
FROM python:3-stretch
WORKDIR /app
ADD . /app/
RUN pip -r requirements.txt
EXPOSE 5000
CMD ["python", "myapp/application.py"]
运行此命令(构建容器后)
docker run -it -p 5000:5000 myapp-python:latest
出现以下错误
Traceback (most recent call last):
File "myapp/application.py", line 3, in <module>
import myapp.config as config
ModuleNotFoundError: No module named 'myapp'
但如上所述,这与之前的 Docker 文件完美匹配。任何帮助深表感谢。
补充说明:
- 构建 Docker 容器时没有错误
这是我的 requirements.txt
flask
requests
flask-restful
flask-migrate
flask-sqlalchemy
flask-marshmallow
flask-jwt-extended
marshmallow-sqlalchemy
python-dotenv
passlib
tox
neomodel==3.2.9
marshmallow>=3.0.0b11
apispec
phonenumbers
pillow
emailage>=1.1.2
emailage-official==1.0.2
boto3
geopy
fuzzywuzzy
py2neo>=4.1.0
python-dotenv
eth_utils
neo4j>=1.7.0
neotime>=1.7.1
python-jose
eth-utils
eth-hash[pycryptodome]
python-Levenshtein
jsonpatch
google-cloud-vision
google-cloud-translate
pycountry
sspyjose>=0.2.5
pysinglesource>=0.1.0
flask-cors
pynamodb
【问题讨论】:
-
第二个只安装需求,不安装应用本身。
-
非常感谢。你能详细说明一下吗?我该如何解决。我对python鸡蛋不是很熟悉。
-
我认为第二个在
PYTHONPATH中找不到您的项目,因为它似乎正在运行CMD中指定的application.py文件,但无法导入config.py文件。 -
如果是python3,不应该是
pip3 install吗? -
@suren。没有。我刚刚为 python:3-stretch 运行了那个 docker 图像来检查,并且 pip 工作得很好 - 它默认为
pip 19.2.3 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)