Поднимаю на сервере docker-compose
django для python
caddy для веб-сервера
postgres для базы данных
хочу смаунтить файлы статики из контейнера django в контейнер caddy. пытаюсь решить задачу именованым volume
при входе в контейнер django вижу все файлы статики, но при обращении в контейнер caddy нахожу пустую директорию. как решить проблему?
docker-compose.yml
version: '3.7'
services:
caddy:
build:
context: .
dockerfile: docker/production/caddy/Dockerfile
image: quantgraph/caddy:development
restart: always
depends_on:
- django
volumes:
- caddy:/home/caddy/.caddy
- media:/var/www/static:ro
- static:/var/www/media:ro
env_file:
- .envs/.caddy
ports:
- "80:80"
- "443:443"
django:
build:
context: ./python
dockerfile: ../docker/production/django/Dockerfile
image: quantgraph/django:development
depends_on:
- postgres
volumes:
- ./python:/code # Project code replace to /code into container
- media:/code/files/media/
- static:/code/files/static/
stdin_open: true # stdin_open and tty will be useful for debugging
tty: true
restart: on-failure # So it can return when a SyntaxError breaks runserver
env_file:
- .envs/.postgres
command: bash -c "sleep 5 && python3 manage.py migrate && python3 manage.py runserver_plus 0.0.0.0:5000 --settings=conf.settings.prod"
postgres:
image: postgres:10-alpine
restart: always
env_file:
- .envs/.postgres
volumes:
- postgres_data:/var/lib/postgresql/data:rw
volumes:
postgres_data:
caddy:
media:
static:
Caddyfile
{$DOMAIN_NAME} {
root /
proxy / django:5000 {
transparent
except /static /media
header_upstream Host {host}
header_upstream X-Real-IP {remote}
header_upstream X-Forwarded-Proto {scheme}
}
root /var/www
log stdout
errors stdout
gzip
}