为什么Docker容器无法运行 - python

我正在尝试在Windows和python 3.7上的docker中运行flask应用程序。

这是我的烧瓶应用程序:

app.py:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
   #some lines of code
   return render_template('home.html', url=url, host='0.0.0.0')

if __name__ == '__main__':
   app.run(debug=True, host='0.0.0.0')

然后我创建了一个dockerfile.txt作为DockerFile并将以下内容放入其中:

FROM python:3.7
MAINTAINER <<Your Name>>
RUN apt-get update -y && \
   apt-get install -y python3-pip python3-dev
COPY ./requirements.txt /app/requirements.txt
WORKDIR /app
RUN pip3 install -t lib -r requirements.txt
COPY . /app
ENTRYPOINT [ "python3" ]
CMD [ "app.py" ]

然后,我在命令提示符下运行以下注释:

docker build -t flask-image:latest .
docker run -d -p 5000:5000 --name name-container1 flask-image

我的问题是在docker ps -a之后,我看到容器name-container1已退出。但不知道为什么?

输出为:

CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS                          PORTS               NAMES
d925f21f165c        flask-image         "python3 app.py"    About a minute ago   Exited (1) About a minute ago                       name-container1

python大神给出的解决方案

最有可能未在Docker中设置PYTHONPATH。代替RUN pip3 install -t lib -r requirements.txt,只需将需求安装为RUN pip3 install -r requirements.txt

Flask-RESTful-返回自定义响应格式 - python

我已经按照以下Flask-RESTful文档定义了自定义响应格式。app = Flask(__name__) api = restful.Api(app) @api.representation('application/octet-stream') def binary(data, code, headers=None): resp =…

Python sqlite3数据库已锁定 - python

我在Windows上使用Python 3和sqlite3。我正在开发一个使用数据库存储联系人的小型应用程序。我注意到,如果应用程序被强制关闭(通过错误或通过任务管理器结束),则会收到sqlite3错误(sqlite3.OperationalError:数据库已锁定)。我想这是因为在应用程序关闭之前,我没有正确关闭数据库连接。我已经试过了: connectio…

Python pytz时区函数返回的时区为9分钟 - python

由于某些原因,我无法从以下代码中找出原因:>>> from pytz import timezone >>> timezone('America/Chicago') 我得到:<DstTzInfo 'America/Chicago' LMT-1 day, 18:09:00 STD…

带后台线程的烧瓶应用程序 - python

我正在创建一个flask应用程序,对于一个请求,我需要运行一些长时间运行的作业,而无需在UI上等待。我将创建一个线程并将消息发送到UI。该线程将计算并更新数据库。但是,UI在提交后会看到一条消息。下面是我的实现,但是它正在运行线程,然后将输出发送到我不喜欢的UI。如何在后台运行此线程?@app.route('/someJob') def …

用大写字母拆分字符串,但忽略AAA Python Regex - python

我的正则表达式:vendor = "MyNameIsJoe. I'mWorkerInAAAinc." ven = re.split(r'(?<=[a-z])[A-Z]|[A-Z](?=[a-z])', vendor) 以大写字母分割字符串,例如:'我的名字是乔。 I'mWorkerInAAAinc”变成…