Назад | Перейти на главную страницу

Журналы NGINX не сопоставляются с томами Docker

Я определяю два уровня журнала в моем файле конфигурации Nginx

http {

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log         /var/log/nginx/access.log main;
    ...
}

и на сервере

server {
  access_log                /var/log/nginx/nginx_access.log;
  error_log                 /var/log/nginx/nginx_error.log;

  location / {
    ...
  }
}

Мой docker-compose.yaml

services:
  nginx:
    build:
      context: ./nginx
    restart: always
    volumes:
      - logs:/var/log/nginx
    ports:
      - "80:80"
    depends_on:
      - django
...

volumes:
  logs:

Но когда я запускаю контейнеры в журналы / где нет access.log, nginx_erro.log, nginx_acess.log или ни одна папка / файл, созданные NGINX, но когда я проверяю контейнер NGINX, файлы там.

Я что-то забываю?

Как вы пытаетесь получить доступ к журналам на вашем хосте докеров?

Попробуйте сопоставить именованный том на вашем хосте:

services:
  nginx:
    build:
      context: ./nginx
    restart: always
    volumes:
      - logs:/var/log/nginx
    ports:
      - "80:80"
    depends_on:
      - django
...

volumes:
  logs:
    driver: local
    driver_opts:
      type: 'none'
      o: 'bind'
      device: '/path/on/your/docker/host/to/mount' 

И проверьте, доступны ли файлы доступа и ошибок!

С уважением,

маэси