Docker запускает контейнер со статическим html-файлом - PullRequest
0 голосов
/ 07 января 2019

Могу ли я запустить контейнер только со статическим html-файлом и использовать контейнер Nginx для передачи запроса к нему? Моя идея заключается в том, чтобы использовать Nginx-контейнер для передачи запроса на несколько веб-сайтов, но эти сайты содержат только статический HTML-файл, это возможно?

Я уже создаю образ докера со статическим файлом

FROM alpine:3.7 COPY /build/ /srv/www/web/

в папке сборки есть только index.html, затем я запускаю этот образ, после чего получаю статус Exited (0)

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Если вы хотите, чтобы один NGINX передавал запросы на прокси на несколько веб-сайтов, вы можете попробовать это руководство . Это довольно распространенная вещь, если вы хотите, например, добавить TLS / SSL для всех ваших сайтов. У меня есть, например, 10 поддоменов и один прокси, который направляет звонки на каждый отдельный сайт при добавлении TLS / SSL. Я использую traefik вместо NGINX, так как он имеет лучшую поддержку Lets Encrypt.

0 голосов
/ 07 января 2019

Когда вы запускаете образ Docker, он запускает один процесс - см. Инструкцию CMD в документации Dockerfile. В вашем контейнере статических файлов нет процессов, которые нужно запустить, поэтому он немедленно завершится.

Вы можете использовать изображение nginx для обслуживания статических файлов - найдите nginx на dockerhub : в разделе с инструкциями этого изображения вы узнаете, как это сделать. (В основном либо монтируйте статические файлы как том, либо создайте производный образ, добавив в него файлы)

1010 * редактировать *

Чтобы обслуживать несколько сайтов, вы должны настроить nginx. В разделе «Сложная конфигурация» документации по образу докера nginx показан пример монтирования пользовательского nginx.conf . Вы должны прочитать документацию nginx, как настроить несколько сайтов.

Так что с точки зрения докера вам нужно только изображение nginx. В простейшем случае все файлы вашего сайта находятся в одном каталоге, который вы должны смонтировать как том докера. И вам нужно смонтировать свой собственный nginx.conf.

edit2

Однако, если вы хотите запускать nginx только на одном сервере, то, вероятно, не стоит использовать docker. Просто установите nginx на сервер.

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