擅长:python、mysql、java
<p>问题是您正在传递<code> host</code>参数,而不是使用flask二进制文件启动应用程序。因此,只需将Dockerfile中CMD的参数带到代码中即可。工作设置:</p>
<p>Dockerfile:</p>
<pre><code>FROM tiangolo/uwsgi-nginx-flask:python3.6-alpine3.7
ENV LISTEN_PORT=5000
EXPOSE 5000
RUN pip install upgrade pip
WORKDIR /app
ADD . /app
CMD ["python3","main.py"]
</code></pre>
<p>和<code>main.py</code></p>
<pre><code>import flask
from flask import Flask, request
import os
app = Flask(__name__)
@app.route('/')
def this_works():
return "This works..."
if __name__ == '__main__':
app.run(host="0.0.0.0", debug=True)
</code></pre>
<p>您构建图像和打开容器的方式是正确的。为了使答案完整,我再次添加了以下步骤:</p>
<pre><code># build the image
docker build tag dockertestapp1 .
# run the container
docker run -it name dockertestapp1 rm -p 5000:5000 dockertestapp1
</code></pre>