From 77eeb009aa3512d8e51bd44c586dce42a425f0dd Mon Sep 17 00:00:00 2001 From: Verum Date: Sat, 7 Mar 2026 01:38:44 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B3=D0=BE=20docker?= =?UTF-8?q?-compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 136 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..e669081 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,136 @@ +services: + app: + # Сборка Docker образа + build: + context: . + dockerfile: Dockerfile + + # build arguments (используются в Dockerfile) + args: + VERSION: ${VERSION:-dev} + BUILD_DATE: ${BUILD_DATE:-unknown} + VCS_REF: ${VCS_REF:-unknown} + + # Имя создаваемого образа + image: python-project + + # Имя контейнера + container_name: python-project-app + + # Файл переменных окружения + # + # Обычно содержит: + # DATABASE_URL + # REDIS_URL + # API_KEYS + env_file: + - .env + + # Перезапуск контейнера при падении + restart: unless-stopped + + # Проброс портов + # + # host:container + ports: + - "8000:8000" + + # Подключаемые тома + # + # Используются для: + # • логов + # • данных приложения + volumes: + - logs:/app/logs + - data:/app/data + + # Зависимости сервиса + # + # Если используются другие сервисы + # их можно добавить сюда + # + # depends_on: + # - postgres + # - redis + + # Ограничения ресурсов (опционально) + # + # Полезно для production + deploy: + resources: + limits: + cpus: "1.0" + memory: 512M + reservations: + cpus: "0.25" + memory: 128M + + # Healthcheck контейнера + # + # Проверяет доступность сервиса + healthcheck: + test: ["CMD", "python", "-c", "import socket; s=socket.socket(); s.connect(('127.0.0.1',8000)); s.close()"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + + + # ========================================================== + # PostgreSQL (пример базы данных) + # ========================================================== + # + # Закомментировано по умолчанию. + # Раскомментируйте при необходимости. + # + # postgres: + # image: postgres:16 + # + # container_name: python-project-postgres + # + # environment: + # POSTGRES_DB: app + # POSTGRES_USER: app + # POSTGRES_PASSWORD: app + # + # volumes: + # - postgres_data:/var/lib/postgresql/data + # + # ports: + # - "5432:5432" + + + # ========================================================== + # Redis (пример кеша / очереди) + # ========================================================== + # + # redis: + # image: redis:7 + # + # container_name: python-project-redis + # + # volumes: + # - redis_data:/data + # + # ports: + # - "6379:6379" + + + +# ============================================================ +# Docker volumes +# ============================================================ + +volumes: + + # Логи приложения + logs: + + # Данные приложения + data: + + # PostgreSQL data (если используется) + # postgres_data: + + # Redis data (если используется) + # redis_data: