Файл Docker отсутствует в volumn?
Сейчас я использую github и docker. Внутри git-репозитория много docx и xlsx файлов в "app/media". Когда я проталкиваю и вытаскиваю образ docker, я пытаюсь docker-compose exec -it web bash
получить доступ для проверки и вижу, что все файлы в "app/media" отсутствуют, а папка media на хосте пуста. Как я могу решить эту проблему?
version: '3.8'
services:
web:
image: xxxx/myimage:latest
command: gunicorn --workers=3 --threads=2 --worker-connections=3000 --timeout 300 project.wsgi:application --bind 0.0.0.0:8000
volumes:
- ./static:/usr/src/app/static
- ./media:/usr/src/app/media
ports:
- 8000:8000
env_file:
- ./.env
depends_on:
- db
db:
image: postgres:13.0-alpine
restart: always
volumes:
- ./database:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=${SQL_USER}
- POSTGRES_PASSWORD=${SQL_PASSWORD}
- POSTGRES_DB=${SQL_DATABASE}
ports:
- 5432:5432
nginx:
image: nginx:1.13.0-alpine
container_name: wrk-nginx
restart: always
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./static:/home/app/web/static
- ./media:/home/app/web/media
- ./certbot/conf/:/etc/nginx/ssl/:ro
depends_on:
- web
certbot:
image: certbot/certbot:latest
volumes:
- ./certbot/conf/:/etc/letsencrypt/:rw
pgbackups:
container_name: Backup
image: prodrigestivill/postgres-backup-local
restart: always
volumes:
- /home/myuser/database:/backups
links:
- db:db
depends_on:
- db
environment:
- POSTGRES_HOST=db
- POSTGRES_DB=${SQL_DATABASE}
- POSTGRES_USER=${SQL_USER}
- POSTGRES_PASSWORD=${SQL_PASSWORD}
- POSTGRES_EXTRA_OPTS=-Z9 --schema=public --blobs
- SCHEDULE=@every 0h30m00s
- BACKUP_KEEP_DAYS=7
- BACKUP_KEEP_WEEKS=4
- BACKUP_KEEP_MONTHS=6
- HEALTHCHECK_PORT=81
Это просто предположение, потому что трудно понять, что здесь происходит, не имея полного проекта.
При bind-mounting директории с хоста в контейнере (именно это сделано здесь), файлы и директории сохраняют разрешения и права собственности, которые они имеют на хосте.
Часто проблема возникает из-за права собственности. Вы должны проверить права собственности на каталоги / файлы на хосте и пользователя по умолчанию (UID/GID) контейнера. Этот пользователь по умолчанию должен иметь необходимые разрешения (группа или пользователь) для просмотра каталогов и файлов на хосте.