Похоже, что конфигурация docker-compose была неправильной. Причина, по которой nginx выбросил эти 404, заключалась в том, что у него не было доступа к /usr/src/app/defsec-exam-app/static
.
Вот правильная конфигурация docker-compose -:
# Nginxnginx: build: ./nginx volumes_from: - django links: - django ports: - "80:80"# This defines a service for the Django app# Will include the Angular frontenddjango: build: . volumes: - .:/root - /usr/src/app expose: - "8000" links: - postgres# This defines a service for the Postgres databasepostgres: image: postgres:latest
volumes_from
получает тома из службы django. И я разоблачил usr/src/app
как объем. Похоже, это делает свое дело. Я открыт для предложений, если таковые имеются!
Кроме того, вот новая конфигурация nginx -:
worker_processes 1;events { worker_connections 1024;}http { server { listen 80; server_name example.org; access_log /dev/stdout; error_log /dev/stdout info; location /static/ { alias /usr/src/app/defsec-exam-app/static; } location /static/javascripts/ { default_type text/javascript; alias /usr/src/app/defsec-exam-app/static/javascripts/; } location /static/stylesheets/ { default_type text/css; alias /usr/src/app/defsec-exam-app/static/stylesheets/; } location /static/bower_components/ { types { text/css css; text/javascript js; } alias /usr/src/app/defsec-exam-app/static/bower_components/; } location /static/partials/ { types { text/html html; } alias /usr/src/app/defsec-exam-app/static/partials/; } location /static/admin/ { alias /usr/src/app/defsec-exam-app/static/admin/; } location /static/admin/css { default_type text/css; alias /usr/src/app/defsec-exam-app/static/admin/css; } location /static/admin/js { default_type text/javascript; alias /usr/src/app/defsec-exam-app/static/admin/js; } location /static/admin/img { types { image/png png; image/jpeg jpg; } alias /usr/src/app/defsec-exam-app/static/admin/img; } location / { proxy_pass http://django: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; proxy_set_header X-Forwarded-Host $server_name; } }}
Примечание: Мне пришлось добавить django admin css / js / img в репозиторий docker / deployment отдельно, чтобы django admin работал правильно. (Простая команда ДОБАВЛЕНИЯ в django Dockerfile делает свое дело)