Estoy usando la ventana acoplable a continuación componer 'local.yml' para ejecutar django en el servidor ec2
services: django: &django build: context: . dockerfile: ./compose/local/django/Dockerfile image: name_docker container_name: django depends_on: - mariadb - mailhog volumes: - .:/app:z env_file: - ./.envs/.local/.django - ./.envs/.local/.mariadb oom_kill_disable: True deploy: resources: limits: cpus: '0.50' memory: '3G' ports: - "8000:8000" command: /startcomienza con el script start.sh que está escrito como
#!/bin/bash set -o errexit set -o pipefail set -o nounset # python /app/manage.py collectstatic --noinput /usr/local/bin/gunicorn config.wsgi --bind 0.0.0.0:8000 --timeout 10000 --workers 5 --threads 5 --chdir=/appEn ec2 después de la implementación, el servidor funciona bien con gunicorn.
Ahora agregué la configuración de nginx como
server { listen 3000; server_name domain_name.in; access_log /var/log/nginx/django_project-access.log; error_log /var/log/nginx/django_project-error.log info; add_header 'Access-Control-Allow-Origin' '*'; keepalive_timeout 5; # path for staticfiles location /static { autoindex on; alias /static; } location / { proxy_set_header Host $http_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-Proto $scheme; proxy_pass http://0.0.0.0:8000; } }Esta configuración también funciona bien y puedo acceder a ella localmente en example.in:3000.
Pero cuando trato de abrir la página de administración, no puedo ver los archivos estáticos allí.
También traté de recolectar estática con el siguiente comando
docker-compose -f local.yml run --rm django python manange.py collectstatic --no-inputLos archivos se recopilan correctamente.
¿Qué debo hacer para servir los archivos estáticos?
Asigne su carpeta /app/static/ del contenedor a una carpeta en el host, digamos: /home/ec2/static/ y asegúrese de que su nginx tenga acceso allí.
volumes: - /home/ec2/static/:/app/staticnginx.conf
... location /home/ec2/static/ { autoindex on; alias /static/; } ...