Skeleton ready
This commit is contained in:
57
deploy/local/compose.yaml
Normal file
57
deploy/local/compose.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
name: application-skeleton
|
||||
|
||||
services:
|
||||
application:
|
||||
build:
|
||||
context: ../../
|
||||
dockerfile: deploy/local/python.Dockerfile
|
||||
container_name: application-skeleton-application
|
||||
command: [
|
||||
"python", "-m", "entry.log_user_messages",
|
||||
"--queue=application.skeleton",
|
||||
"--exchange=amq.topic",
|
||||
"--routing-key=user.message.*"
|
||||
]
|
||||
stop_grace_period: 3s
|
||||
depends_on:
|
||||
rabbitmq:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- ../../:/opt/app
|
||||
networks:
|
||||
- application-skeleton-network
|
||||
|
||||
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
|
||||
|
||||
networks:
|
||||
application-skeleton-network:
|
||||
external: false
|
||||
11
deploy/local/python.Dockerfile
Normal file
11
deploy/local/python.Dockerfile
Normal file
@@ -0,0 +1,11 @@
|
||||
FROM python:3.12-slim
|
||||
|
||||
ENV PYTHONPATH=/opt/app
|
||||
|
||||
RUN pip install --upgrade pip
|
||||
|
||||
COPY requirements.txt .
|
||||
|
||||
RUN pip install -r requirements.txt
|
||||
|
||||
WORKDIR /opt/app
|
||||
77
deploy/main/compose.yaml
Normal file
77
deploy/main/compose.yaml
Normal 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
|
||||
|
||||
13
deploy/main/python.Dockerfile
Normal file
13
deploy/main/python.Dockerfile
Normal 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
|
||||
Reference in New Issue
Block a user