Как создать собственный контейнер nginx: alpine для прослушивания порта, отличного от 80? - PullRequest
2 голосов
/ 20 марта 2019

Мне нужен Docker-контейнер на основе nginx: alpine, обслуживающий содержимое http с порта 8080, но nginx: alpine прослушивает порт 80 по умолчанию.
Как я могу изменить порт при сборке моего пользовательского контейнера?

1 Ответ

4 голосов
/ 21 марта 2019

ОПЦИЯ 1 (рекомендуется): установка нового файла конфигурации

Создание локального default.conf * файла со следующим содержимым:

server {
    listen       8080;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

* за портом 8080, настройте вышеуказанное содержимое в соответствии со своими потребностями

Скопируйте default.conf в пользовательский контейнер [Dockerfile]:

FROM nginx:alpine
## Copy a new configuration file setting listen port to 8080
COPY ./default.conf /etc/nginx/conf.d/
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]

ВАРИАНТ 2: изменение конфигурации по умолчанию для nginx [Dockerfile]

FROM nginx:alpine
## Make a copy of default configuration file and change listen port to 8080
RUN cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.conf.orig && \
    sed -i 's/listen[[:space:]]*80;/listen 8080;/g' /etc/nginx/conf.d/default.conf
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]

создание резервной копии исходной конфигурации необязательно, конечно

...