如何创建适当的Dockerfile

时间:2019-06-18 13:13:06

标签: docker docker-compose

我是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

我的Dockerfileroutes.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)

1 个答案:

答案 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