O contêiner NGINX docker pára imediatamente

Comecei a conhecer o Docker e o nginx no docker. Quero usar meus próprios arquivos estáticos personalizados e meu próprio nginx.conf, então eu criei um arquivo docker:

FROM nginxRUN rm /etc/nginx/nginx.confCOPY /nginx.conf /etc/nginx/nginx.confCOPY / /usr/share/nginx/html# Expose portsEXPOSE 80

E o meu nginx.conf:

#user  nobody;worker_processes  auto;#error_log  logs/error.log;#error_log  logs/error.log  notice;#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"'                       '$server_name to: $upstream_addr: $request';    access_log  logs/access.log  main;    sendfile        on;    #tcp_nopush     on;    #keepalive_timeout  0;    keepalive_timeout  65;    #gzip  on;    server {        listen       8080;        server_name  127.0.0.1;        #charset koi8-r;        #access_log  logs/host.access.log  main;        location / {            root   /usr/share/nginx/html;            index  index.html index.htm;            try_files $uri /index.html;            include       mime.types;                   }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

Estou construindo isso com:

docker build --no-cache -t nginx-custom .

E executá-lo com:

docker run -d -p 8080:80 --name webserver nginx-custom

Mas ele constrói e depois é executado, mas stopps imediatamente, então se eu verificar com

docker ps -a

Vejo que saiu há 1 segundo.Eu tentei usar CMD /usr/sbin/nginx -g "daemon off;" ou deamon off; no conf nginx, ou use CMD ["nginx", "-g", "daemon off;"] não importa o que eu faça, são apenas Saídas logo após a corrida.

Você tem que definir o caminho correto para seus logs nginx.

/var/log/nginx/error.log e /var/log/nginx/access.log

Tente executá - lo com o comando abaixo:-

docker run -d -p 8080:80 --name webserver -it nginx-custom /bin/bash

quando tentei executar o contêiner no modo interativo, consegui:

[emerg] 1#1: Abrir () " / etc / nginx / logs / access.log " falhou (2: nenhum arquivo ou diretório) como baixar e instalar o Windows 8.0 no Windows 8.0.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.log " falhou (2: nenhum arquivo ou diretório)
então eu adicionei:
‘Execute mkdir-p / etc / nginx / logs/’ e funciona

onde o nginx.arquivo conf localizado no seu pc?

se estiver localizado no mesmo diretório, você deve alterar o comando para

COPIAR ./ nginx.conf / etc / nginx / nginx.conf

o nginx.conf está localizado ao lado do Dockerfile, tentei alterar a cópia, mas ainda sai

Para depurar sua configuração, você pode executar o contêiner no modo interativo.

'docker run-it-p 8080: 80 – name Web server nginx-custom`

em seguida, dentro do contêiner, você pode verificar sua configuração do nginx com o comando ’ nginx-t`

Portanto, seu caminho de log está errado
você pode criá-lo no arquivo docker ou deixar o padrão /var/log/nginx/error.log ’ / var / log / nginx / access.log`