Exec format Ошибка при запуске dockerised Привет мир Python пример - PullRequest
2 голосов
/ 12 апреля 2019

Я пытаюсь освоить докер с основ.В своих официальных документах они продемонстрировали простое приложение Python для Hello world.Но если я попробую то же самое на хосте Windows, я получу следующее исключение.Мой привет код с кодом

from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
    return "Hello World!"
if __name__ == "__main__":
    app.run(host="0.0.0.0", port=int("5000"), debug=True)

и мой файл Docker:

FROM python:alpine3.7
COPY . /app
WORKDIR /app
RUN pip install -r requirements.txt
EXPOSE 5000
CMD python ./index.py

Файл require.txt просто содержит имя библиотеки (колбу), которую нужно установить.

и ошибка, которую я получаю при запуске dockerised образа:

Console output from Windows

Я совершенно новичок как в Docker, так и в Python.Поэтому, пожалуйста, помогите мне ... Спасибо заранее

1 Ответ

0 голосов
/ 12 апреля 2019

Я видел этот шаблон раньше, поэтому я был вполне уверен, что означало сообщение об ошибке, но в этом случае я не мог понять, почему. Кажется, происходит то, что Flask перезапускается сам, но там, где исходное выполнение было запущено с python ./index.py, перезапуск выполняет /app/index.py. Он пытается обработать то, что изначально было первым входным параметром, в python, файл Python для выполнения, как если бы он выполнялся напрямую. Ошибка говорит, что это не так. Если вы поместите строку shebang, например #!/usr/bin/env python вверху этого файла, и сделаете его исполняемым, он может начать работать для вас. Но вы не должны этого делать. Настройка здесь должна работать нормально.

Итак, я гуглил, и это похоже на известную проблему с комбинацией werkzeug (библиотека, используемая Flask), Docker и Windows :

https://github.com/pallets/werkzeug/issues/1482

Поскольку я не на Windows, я оставлю это операционному агентству или кому-то еще, чтобы взять его отсюда.

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