У меня есть проект Django, развернутый с Docker на DigitalOcean.Я основал его на этом уроке , но мне пришлось изменить некоторые вещи, чтобы он заработал.Я получаю ошибку 500, когда пытаюсь зарегистрироваться по электронной почте SMTP (работает локально), и проблема в том, что я не могу получить больше информации об этой ошибке, потому что ничего не записывается в nginx access.log / error.log (файлы всегда пустые), и я не могу найти никаких выводов в журналах докеров.
Я был во всем переполнении стека и в Интернете в целом, но не нашел помощи.Я попытался изменить права доступа / владельца для файлов журнала, чтобы они соответствовали рабочему Nginx, без разницы.Я попытался переопределить файлы журналов по умолчанию (/var/log/nginx/error.log) в конфигурации Nginx, хотя кажется, что мне это не нужно, и это тоже не имело никакого значения.
Вот что у меня есть в nginx / sites-enabled:
server {
listen 80;
server_name 134.209.172.141;
charset utf-8;
location /static {
alias /www/static;
}
location / {
proxy_pass http://web:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
... и Dockerfile nginx:
FROM tutum/nginx
RUN rm /etc/nginx/sites-enabled/default
COPY sites-enabled/ /etc/nginx/sites-enabled
Я не указываю nginxФайл .conf, но я замечаю, что если я зашита в контейнер nginx, такой файл будет в /etc/nginx/nginx.conf.Возможно, это происходит по умолчанию с образом Docker?
Вот docker-compose.yml, который я использую для сборки:
version: '3'
services:
web:
restart: always
build: ./web
expose:
- "8000"
links:
- postgres:postgres
- redis:redis
volumes:
- web-django:/usr/src/app
- web-static:/usr/src/app/static
env_file: .env_prod
command: /usr/local/bin/gunicorn cpm_project.wsgi:application -w 2 -b :8000
nginx:
restart: always
build: ./nginx/
ports:
- "80:80"
volumes:
- web-static:/www/static
links:
- web:web
postgres:
restart: always
image: postgres:latest
volumes:
- pgdata:/var/lib/postgresql/data/
redis:
restart: always
image: redis:latest
ports:
- "6379:6379"
volumes:
- redisdata:/data
volumes:
web-django:
web-static:
pgdata:
redisdata:
После бесчисленных часов работы у меня было что-то, что работает, вНесмотря на большие пробелы в моем понимании docker / nginx.Но когда я добавил SMTP в Django settings.py и попытался проверить регистрацию электронной почты в реальном времени, я получил ошибку 500 после нажатия кнопки «зарегистрироваться»;и затем, после многих часов исследований и проб разных вещей, а также отрывания волос, у меня нет больше информации об этой ошибке, и ничто не похоже на проблеск подсказки к реальной проблеме, не говоря уже о решении.Кажется, что начать работу с журналами Nginx - это хорошее начало, но я был бы признателен за любую ясность.
Рад опубликовать любой другой код, который может быть полезен, не хотел вас затоплять.