Контейнер NGINX docker немедленно останавливается

Я начал знакомиться с Docker и nginx в docker. Я хочу использовать свои собственные пользовательские статические файлы и свой собственный nginx.conf, поэтому я создал файл docker:

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

И мой 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;        }    }}

Я строю это с помощью:

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

И запускаю его с помощью:

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

Но он строится, а затем запускается, но сразу же останавливается, поэтому, если я проверю с

docker ps -a

Я вижу, что он вышел 1 секунду назад.Я пытался использовать CMD /usr/sbin/nginx -g "daemon off;" или deamon off; в nginx conf или используйте CMD ["nginx", "-g", "daemon off;"] что бы я ни делал, это просто завершается сразу после запуска.

Вы должны определить правильный путь для ваших журналов nginx.

/var/log/nginx/error.log и /var/log/nginx/access.log

Попробуйте запустить его с помощью приведенной ниже команды:-

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

когда я попытался запустить контейнер в интерактивном режиме, я получил:

[emerg] 1#1: ошибка открытия() "/etc/nginx/logs/access.log" (2: Нет такого файла или каталога) nginx: [emerg] ошибка открытия() "/etc/nginx/logs/access.log" (2: Нет такого файла или каталога)
затем я добавил:
“ЗАПУСТИТЕ mkdir -p /etc/nginx/logs /”, и это сработает

где находится файл nginx.conf на вашем компьютере?

если он находится в том же каталоге, вы должны изменить команду на

КОПИРОВАТЬ ./nginx.conf /etc/nginx/nginx.conf

файл nginx.conf расположен рядом с файлом Dockerfile, я попытался изменить КОПИЮ, но все равно завершается

Чтобы отладить вашу конфигурацию, вы можете запустить контейнер в интерактивном режиме.

docker run -it -p 8080:80 --имя веб-сервера nginx-custom

затем внутри контейнера вы можете проверить свою конфигурацию nginx с помощью команды nginx -t

Если ваш путь к журналу неверен
, вы можете создать его в файле docker или оставить значение по умолчанию /var/log/nginx/error.log /var/log/nginx/access.log