123
This commit is contained in:
136
docker-compose.yml
Normal file
136
docker-compose.yml
Normal file
@@ -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:
|
||||
Reference in New Issue
Block a user