generated from kamikaze/python3-project-template
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdocker-compose.yml
75 lines (70 loc) · 2.28 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
services:
rabbitmq-service:
image: docker.io/rabbitmq:management
container_name: rabbitmq-service
environment:
RABBITMQ_ERLANG_COOKIE: 'secret_cookie'
RABBITMQ_DEFAULT_USER: guest
RABBITMQ_DEFAULT_PASS: guest
ports:
- "5672:5672"
- "15672:15672"
volumes:
- ./.docker/rabbitmq_init.sh:/rabbitmq_init.sh
command: [ "bash", "-c", "/rabbitmq_init.sh" ]
redis-service:
image: docker.io/redis
container_name: redis-service
ports:
- "6379:6379"
db:
image: postgres:17-alpine
container_name: db
ports:
- "5432:5432"
environment:
POSTGRES_DB: "${POSTGRES_DB:-template_app_db}"
POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:-dev}"
POSTGRES_USER: "${POSTGRES_USER:-dev}"
pgweb:
image: sosedoff/pgweb
container_name: pgweb
ports:
- "8081:8081"
environment:
DATABASE_URL: "postgresql://${POSTGRES_USER:-dev}:${POSTGRES_PASSWORD:-dev}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-template_app_db}?sslmode=disable"
entrypoint: /bin/bash
command: [
"-c",
"until pg_isready -h ${POSTGRES_HOST:-db} -d ${POSTGRES_DB:-template_app_db}; do echo 'wait for db'; sleep 1; done && pgweb --bind=0.0.0.0"
]
depends_on:
- db
fastapi-template-migrate:
build:
context: ./
dockerfile: Dockerfile
image: fastapi-template-service
container_name: fastapi-template-migrate
environment:
DB_DSN: "postgresql+asyncpg://${POSTGRES_USER:-dev}:${POSTGRES_PASSWORD:-dev}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-template_app_db}"
LOGGING_LEVEL: "${LOGGING_LEVEL:-DEBUG}"
entrypoint: python3
command: ["-m", "alembic", "upgrade", "head"]
depends_on:
- db
fastapi-template-service:
build:
context: ./
dockerfile: Dockerfile
image: fastapi-template-service
container_name: fastapi-template-service
ports:
- "8080:8080"
environment:
AMQP_DSN: "${AMQP_DSN:-amqp://guest:guest@rabbitmq-service/}"
DB_DSN: "postgresql://${POSTGRES_USER:-dev}:${POSTGRES_PASSWORD:-dev}@${POSTGRES_HOST:-db}:${POSTGRES_PORT:-5432}/${POSTGRES_DB:-template_app_db}"
LOGGING_LEVEL: "${LOGGING_LEVEL:-DEBUG}"
depends_on:
- db
- fastapi-template-migrate