Skeleton ready

This commit is contained in:
2026-07-08 23:01:55 +04:00
commit d9e5effdce
75 changed files with 1989 additions and 0 deletions

77
deploy/main/compose.yaml Normal file
View File

@@ -0,0 +1,77 @@
name: application-skeleton
services:
application:
build:
context: ../../
dockerfile: deploy/main/python.Dockerfile
image: ${APP_IMAGE}
container_name: application-skeleton-application
depends_on:
rabbitmq:
condition: service_healthy
redis:
condition: service_healthy
command: [
"python", "-m", "entry.log_user_messages",
"--queue=application.skeleton",
"--exchange=amq.topic",
"--routing-key=user.message.*"
]
stop_grace_period: 3s
volumes:
- application-skeleton-data:/opt/app/data
environment:
- APP_NAME=${APP_NAME}
- APP_ENV=${APP_ENV}
- RABBITMQ_HOST=${RABBITMQ_HOST}
- RABBITMQ_PORT=${RABBITMQ_PORT}
- RABBITMQ_USER=${RABBITMQ_USER}
- RABBITMQ_PASS=${RABBITMQ_PASS}
- RABBITMQ_TIMEOUT=${RABBITMQ_TIMEOUT}
- RABBITMQ_VHOST=${RABBITMQ_VHOST}
- REDIS_HOST=${REDIS_HOST}
- REDIS_PORT=${REDIS_PORT}
- REDIS_DB=${REDIS_DB}
networks:
- application-skeleton-network
restart: unless-stopped
rabbitmq:
image: rabbitmq:4.3-management
container_name: application-skeleton-rabbitmq
environment:
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASS}
healthcheck:
test: rabbitmq-diagnostics ping
interval: 3s
timeout: 5s
retries: 10
start_period: 10s
networks:
- application-skeleton-network
ports:
- "15672:15672"
redis:
image: redis:8-alpine
container_name: application-skeleton-redis
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 3s
timeout: 5s
retries: 10
start_period: 10s
networks:
- application-skeleton-network
restart: unless-stopped
networks:
application-skeleton-network:
external: false
volumes:
application-skeleton-data:
external: false

View File

@@ -0,0 +1,13 @@
FROM python:3.12-slim
ENV PYTHONPATH=/opt/app
RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . /opt/app
WORKDIR /opt/app