【发布时间】:2019-06-18 21:07:02
【问题描述】:
所以我的问题很简单,但仍然无法控制它,并且它的表现不像我想要的那样。
示例 docker 文件:
FROM ubuntu:16.04
RUN apt-get update -y && \
apt-get install -y python3-pip python3-dev
COPY ./requirements.txt /requirements.txt
WORKDIR /
RUN pip3 install -r requirements.txt
COPY . /
RUN chmod a+x start.sh
EXPOSE 5000
CMD ["./start.sh"]
样本start.sh
#!/usr/bin/env bash
# sleep 600
nohup python3 /code/app.py &
python3 /code/helloworld_extract.py
示例烧瓶 app.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
return """
<h1>Python Flask in Docker!</h1>
<p>A sample web-app for running Flask inside Docker.</p>
"""
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0')
所以,我的问题是,一旦我构建映像并运行它,
docker run --name flaskapp -p5000:5000 docker-flask:latest...我无法访问 localhost:5000。
如果我进入容器并使用 python3 app.py 运行显式 nohup 命令。我可以到达本地主机。
那么,为什么我无法使用运行命令访问 localhost 主机?
问题是我需要运行 2 个脚本,一个是 flask,另一个是 helloworld_extract.py,它在将一些信息写入文件后最终退出。
【问题讨论】:
-
你的主容器进程(也就是
helloworld_extract.py)退出了吗?你确定你不想要两个容器吗? -
是的......它确实退出了。不,helloworld_extract 只是一个为烧瓶应用程序提供内容的抓取脚本。初始化后。
标签: python-3.x docker flask