From efd0a2b66e862281d79f5875c91fc69a68460b20 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Wed, 7 Jan 2026 20:31:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D1=8F?= =?UTF-8?q?=20=D0=B8=20docker-compose.yml?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Убран блок environment из сервиса db в docker-compose.yml (переменные читаются напрямую из .env.docker) - Обновлён DEPLOY_NAS.md: * Добавлен полный пример .env.docker с CSRF_TRUSTED_ORIGINS и DOMAIN_NAME * Добавлено предупреждение о необходимости совпадения DB_PASSWORD и POSTGRES_PASSWORD * Расширен раздел про права доступа (chown для всей папки проекта) * Добавлены решения для ошибок password authentication failed и Permission denied - Обновлена ИНСТРУКЦИЯ_ОБНОВЛЕНИЕ.md: * Исправлены пути (команды выполняются из /Volume1/DockerYAML/mix) * Добавлен раздел Возможные проблемы с решениями * Уточнены команды для проверки переменных окружения в контейнерах --- myproject/docker/docker-compose.yml | 76 ++++++++++++----------------- 1 file changed, 31 insertions(+), 45 deletions(-) diff --git a/myproject/docker/docker-compose.yml b/myproject/docker/docker-compose.yml index 18b1800..aec84a7 100644 --- a/myproject/docker/docker-compose.yml +++ b/myproject/docker/docker-compose.yml @@ -1,26 +1,19 @@ -# Все файлы хранятся в /Volume1/DockerAppsData/mixapp/ -# YAML файл хранится в /Volume1/DockerYAML/mix/ - services: - # PostgreSQL база данных db: image: postgres:15-alpine container_name: mix_postgres restart: unless-stopped - environment: - - POSTGRES_USER=${DB_USER:-postgres} - - POSTGRES_DB=${DB_NAME:-inventory_db} env_file: - - .env.docker - + - /Volume1/DockerAppsData/mixapp/app/myproject/docker/.env.docker volumes: - - ../../postgres:/var/lib/postgresql/data + - /Volume1/DockerAppsData/mixapp/postgres:/var/lib/postgresql/data healthcheck: - test: [ "CMD-SHELL", "pg_isready -U ${DB_USER:-postgres} -d ${DB_NAME:-inventory_db}" ] + test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-postgres} -d ${DB_NAME:-inventory_db}"] interval: 10s timeout: 5s - retries: 5 + retries: 10 + start_period: 30s networks: - mix_network @@ -31,9 +24,9 @@ services: restart: unless-stopped command: redis-server --appendonly yes volumes: - - ../../redis:/data + - /Volume1/DockerAppsData/mixapp/redis:/data healthcheck: - test: [ "CMD", "redis-cli", "ping" ] + test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 5s retries: 5 @@ -43,28 +36,20 @@ services: # Django Web приложение web: build: - context: .. + context: /Volume1/DockerAppsData/mixapp/app/myproject dockerfile: docker/Dockerfile + image: mix_web:latest container_name: mix_web restart: unless-stopped command: web env_file: - - .env.docker - environment: - - ALLOWED_HOSTS=mix.smaa.by,.mix.smaa.by,localhost,127.0.0.1 - - CSRF_TRUSTED_ORIGINS=https://mix.smaa.by,https://*.mix.smaa.by - - DOMAIN_NAME=mix.smaa.by - - DB_HOST=db - - REDIS_HOST=redis + - /Volume1/DockerAppsData/mixapp/app/myproject/docker/.env.docker volumes: - # Монтируем код приложения для горячего обновления (опционально, если нужно обновлять без пересборки) - # - /Volume1/DockerAppsData/mixapp/app:/app - # Медиа и статика - # Медиа и статика (монтируем туда, где их ждет Django) - - ../../media:/app/myproject/media - - ../../static:/app/myproject/staticfiles - ports: - - "8000:8000" + # ВАЖНО: монтируем именно папку проекта в /myproject, чтобы /app/manage.py существовал + - /Volume1/DockerAppsData/mixapp/app/myproject:/app + # Медиа и статика (как ожидает Django) + - /Volume1/DockerAppsData/mixapp/media:/app/myproject/media + - /Volume1/DockerAppsData/mixapp/static:/app/myproject/staticfiles depends_on: db: condition: service_healthy @@ -72,23 +57,22 @@ services: condition: service_healthy networks: - mix_network + - proxy-net - # Celery Worker для обработки задач + # Celery Worker celery-worker: build: - context: .. + context: /Volume1/DockerAppsData/mixapp/app/myproject dockerfile: docker/Dockerfile + image: mix_celery:latest container_name: mix_celery_worker restart: unless-stopped command: celery-worker env_file: - - .env.docker - environment: - - DB_HOST=db - - REDIS_HOST=redis + - /Volume1/DockerAppsData/mixapp/app/myproject/docker/.env.docker volumes: - - ..:/app - - ../../media:/app/myproject/media + - /Volume1/DockerAppsData/mixapp/app/myproject:/app + - /Volume1/DockerAppsData/mixapp/media:/app/myproject/media depends_on: db: condition: service_healthy @@ -97,21 +81,19 @@ services: networks: - mix_network - # Celery Beat для периодических задач + # Celery Beat celery-beat: build: - context: .. + context: /Volume1/DockerAppsData/mixapp/app/myproject dockerfile: docker/Dockerfile + image: mix_celery:latest container_name: mix_celery_beat restart: unless-stopped command: celery-beat env_file: - - .env.docker - environment: - - DB_HOST=db - - REDIS_HOST=redis + - /Volume1/DockerAppsData/mixapp/app/myproject/docker/.env.docker volumes: - - ..:/app + - /Volume1/DockerAppsData/mixapp/app/myproject:/app depends_on: db: condition: service_healthy @@ -123,3 +105,7 @@ services: networks: mix_network: driver: bridge + + proxy-net: + external: true + name: proxy-net \ No newline at end of file