这是我的DockerFile:
FROM ubuntu:latest
RUN apt-get update -y
RUN apt-get install -y python-pip python-dev build-essential
COPY . /app
ENV HOME=/app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 8000
ENTRYPOINT ["gunicorn", "-b", "0.0.0.0:8000", "-w", "4", "app:app"]
一切运行顺利,我在日志中看到所有模块都通过以下方式安装:
pip install -r requirements.txt
但是我每次跑步:
docker start -ai backend
它出错并说:
Traceback (most recent call last):
File "app.py", line 1, in <module>
from backend import app
File "/app/backend/__init__.py", line 1, in <module>
from flask import render_template, Flask
ImportError: No module named flask
编辑:我的requirements.txt文件具有所需的模块,我可以从命令行运行gunicorn命令,并且可以完美启动服务器。
Requirements.txt文件:
certifi==2018.4.16
chardet==3.0.4
click==6.7
Flask==0.12.2
Flask-Cors==3.0.7
Flask-MySQL==1.4.0
gunicorn==19.7.1
idna==2.6
itsdangerous==0.24
Jinja2==2.10
MarkupSafe==1.0
PyMySQL==0.9.3
requests==2.18.4
six==1.12.0
urllib3==1.22
Werkzeug==0.14.1
编辑#2
我发现这样做:
sudo docker run -it backend:latest bash
使其工作,但我无法访问该网站。
答案 0 :(得分:0)
尝试pip freeze
并检查您的环境中是否安装了Flask。您使用的是Python 2还是Python 3?我建议您使用pip3运行。因此,请尝试使用pip3 install -r requirements.txt