我正在尝试在 docker 容器中运行一个基本的烧瓶应用程序。docker build 工作正常,但是当我尝试在本地进行测试时,我得到了
127.0.0.1 没有发送任何数据错误。
文件
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","--host=0.0.0.0"]
Run Code Online (Sandbox Code Playgroud)
主文件
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(debug=True)
Run Code Online (Sandbox Code Playgroud)
运行我正在使用的容器的命令是:
docker run -it --name dockertestapp1 --rm -p 5000:5000 dockertestapp1
Run Code Online (Sandbox Code Playgroud)
还要构建的命令是:
docker build --tag dockertestapp1 .
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗。
问题是您在传递--host参数时不使用 Flask 二进制文件来启动应用程序。因此,您只需将 Dockerfile 中 CMD 中的参数取出到您的代码中即可。工作设置:
Dockerfile:
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"]
Run Code Online (Sandbox Code Playgroud)
和 main.py
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)
Run Code Online (Sandbox Code Playgroud)
您构建映像和启动容器的方式是正确的。我再次添加步骤以使答案完整:
# build the image
docker build --tag dockertestapp1 .
# run the container
docker run -it --name dockertestapp1 --rm -p 5000:5000 dockertestapp1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2112 次 |
| 最近记录: |