我是Docker的新手,但我必须为此application创建Docker Compose。
我决定从构建映像开始并将其作为一个容器运行,因此我克隆了存储库并创建了以下Dockerfile:
FROM python:2.7-slim
WORKDIR /flask
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
CMD ["python", "routes.py"]
图像创建成功,但是当我使用运行命令时,我收到:
python: can't open file 'routes.py': [Errno 2] No such file or directory
我的Dockerfile
与routes.py
位于同一目录中,所以我不知道他为什么看不到它。
编辑:将目录复制到容器中解决了打开文件的问题。但是不会显示网络内容。 docker run tagName
命令返回:
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger pin code: 262-019-209
但是,当我输入docker container ls
时,我的容器不在列表中。所以也许他还没有被创造出来。
routes.py
文件:
from flask import Flask, render_template
app = Flask(__name__)
# two decorators, same function
@app.route('/')
@app.route('/index.html')
def index():
return render_template('index.html', the_title='Tiger Home Page')
@app.route('/symbol.html')
def symbol():
return render_template('symbol.html', the_title='Tiger As Symbol')
@app.route('/myth.html')
def myth():
return render_template('myth.html', the_title='Tiger in Myth and Legend')
if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)
答案 0 :(得分:1)
您需要将当前目录/文件复制到容器中-
FROM python:2.7-slim
WORKDIR /flask
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "routes.py"]
OR
FROM python:2.7-slim
WORKDIR /flask
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY routes.py ./
CMD ["python", "routes.py"]
确保将其绑定到所有主机,即0.0.0.0,而不是localhost。
Ref-Configure Flask dev server to be visible across the network