Tengo dos servicios docker-compose nginx
y django
, y en mi script de shell de command
realizo una tarea de trago que crea mis archivos estáticos. Una vez que se completa el proceso de compilación, quiero realizar un comando de copia para copiar esos archivos en el contenedor nginx, pero no estoy seguro de qué comando usar.
django: build: context: . dockerfile: ./compose/django/Dockerfile user: django depends_on: - postgres - redis command: /gunicorn.sh env_file: .env nginx: build: ./compose/nginx depends_on: - django ports: - "0.0.0.0:80:80"
#!/bin/sh gulp build python manage.py migrate /usr/local/bin/gunicorn config.wsgi -w 4 -b 0.0.0.0:5000 --chdir=/app
Supongo que podría usar scp dentro de gunicorn.sh
, pero no estoy seguro de cómo haría referencia a la dirección IP del servicio nginx
.
Simplemente comparta volúmenes entre contenedores, no hay necesidad de copiar los archivos.
Hay varias formas de definir los volúmenes, pero supongo que no desea que estos archivos estén en su sistema de archivos host.
Prueba algo como lo siguiente:
volumes: - static: django: build: context: . dockerfile: ./compose/django/Dockerfile user: django depends_on: - postgres - redis command: /gunicorn.sh volumes: - static:/path/to/your/static/files env_file: .env nginx: build: ./compose/nginx depends_on: - django volumes: - static:/some/dir/to/serve/files/from/ ports: - "0.0.0.0:80:80"
Y luego configure nginx para servir sus archivos estáticos desde /some/dir/to/serve/files/from/
.