Создайте файл Docker, который запускает HTTP-сервер Python для отображения HTML-файла - PullRequest
0 голосов
/ 25 июня 2018

У меня есть каталог с одним простым HTML-файлом (name: index.html), который отображает некоторый основной текст.Я запускаю команду python:

python -m SimpleHTTPServer 7000

, чтобы запустить сервер на порту 7000 в том же каталоге, чтобы отобразить страницу в браузере.

Теперь я хочу иметь возможность докернизировать этот процесс, и мне нужна помощь с этим.

По сути, dockerfile должен запустить сервер на порту 7000 с помощью этой команды python, а затем отобразить html набраузер.

Что я подумал:

FROM ubuntu:14.04
COPY index.html
FROM python:latest
EXPOSE 80
CMD ["python SimpleHTTPServer 7000", "-m"]

Кроме того, как мне собрать и запустить этот файл, как только он будет сделан?

Я почти уверен, что это победило 'не работает, но так как я новичок в этом, я не знаю, как это исправить.

1 Ответ

0 голосов
/ 25 июня 2018

Кроме того, как мне собрать и запустить этот файл, как только он будет сделан?

Вы были близки.Несколько указателей:

  • Если вы используете python3, вам придется либо использовать http.server, либо установить SimpleHTTPServer отдельно
  • Если вы используете python 2.7, тогда вы не можете использовать тег «последний»таким образом, вы используете его
  • Контейнерный порт и желаемый целевой локальный порт не совпадают

Вот Dockerfile варианты для Python 3:

FROM python:latest
COPY index.html /
EXPOSE 7000
CMD python -m http.server 7000

и python 2.7:

FROM python:2.7
COPY index.html /
EXPOSE 7000
CMD python -m SimpleHTTPServer 7000

вместе со сборкой

docker build -t my-docker-image .

и запустите commnand:

run --rm -it --name my-docker-instance -p 80:7000 my-docker-image

После запуска вы можете перейти к http://localhost дляполучите там контейнерный порт 7000, при условии, что ваш хост не запускает что-либо на порту 80 (переназначите, если так).

Примечания:

  • Использование последнего образа нормально для разработки, но проблематичнов производстве
  • рабочий каталог установлен как root, может быть, вы хотели бы расположить файлы соответствующим образом
  • запуск кода с простого сервера приемлем для развития

Редактировать: Iвидишь, что b0gusb побил меня этим:)

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