Как создать правильный Dockerfile - PullRequest
0 голосов
/ 18 июня 2019

Я совершенно новичок в Docker, но мне нужно создать 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)

1 Ответ

1 голос
/ 18 июня 2019

Вам необходимо скопировать ваш текущий каталог / файл в контейнер -

FROM python:2.7-slim
WORKDIR /flask
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "routes.py"]

ИЛИ

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 - Настройка сервера Flask dev для отображения в сети

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...