Como executar o Nginx com uma configuração personalizada dentro do Docker?

1

O Nginx config tem uma diretiva daemon off; definida em /root/nginx.conf .

Estou tentando executá-lo no docker usando este comando:

sudo docker run --name nginx-redirect -p 3128:3128 -v /root/nginx.conf:/etc/nginx/nginx.conf:ro -d nginx

mas nada acontece (exceto a saída do Docker do ID do contêiner; acho que deveria significar que está tudo bem), e netstat -tulpn não mostra docker/nginx contêiner e não 3128 port, onde estou errado?

/root/nginx.conf :

user www-data;
worker_processes auto;
pid /run/nginx.pid;
daemon off;

events {
  worker_connections 768;
}

http {
  server {
    listen 3128;
    location / {
      proxy_pass http://example.com;
    }
  }
}
    
por gr4k 01.11.2016 / 22:21

1 resposta

1

O contêiner nginx por padrão é executado com daemon off; e você pode verificar isso no Dockerfile

FROM debian:jessie

MAINTAINER NGINX Docker Maintainers "[email protected]"

ENV NGINX_VERSION 1.10.2-1~jessie

RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 \
    && echo "deb http://nginx.org/packages/debian/ jessie nginx" >> /etc/apt/sources.list \
    && apt-get update \
    && apt-get install --no-install-recommends --no-install-suggests -y \
                        ca-certificates \
                        nginx=${NGINX_VERSION} \
                        nginx-module-xslt \
                        nginx-module-geoip \
                        nginx-module-image-filter \
                        nginx-module-perl \
                        nginx-module-njs \
                        gettext-base \
    && rm -rf /var/lib/apt/lists/*

# forward request and error logs to docker log collector
RUN ln -sf /dev/stdout /var/log/nginx/access.log \
    && ln -sf /dev/stderr /var/log/nginx/error.log

EXPOSE 80 443

CMD ["nginx", "-g", "daemon off;"]

Dockerfile Nginx

Portanto, você precisa remover a diretiva daemon do seu arquivo nginx para executar o contêiner e ele deve funcionar bem.

    
por 04.11.2016 / 10:24

Tags