-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
executable file
·137 lines (131 loc) · 3.74 KB
/
docker-compose.yml
File metadata and controls
executable file
·137 lines (131 loc) · 3.74 KB
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
networks:
sono-net:
driver: bridge
#kworb-net:
# external: true
# name: sono-kworb_default
services:
db:
image: postgres:15
container_name: sono_postgres_db
networks:
- sono-net
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
ports:
- "${DB_EXPOSE_PORT}:5432"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB:-sonodb}"]
interval: 10s
timeout: 5s
retries: 5
pgadmin:
image: dpage/pgadmin4
container_name: sono_pgadmin
networks:
- sono-net
environment:
PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
ports:
- "8080:80"
depends_on:
- db
restart: unless-stopped
minio:
container_name: sono_minio
image: minio/minio
networks:
- sono-net
ports:
- "9000:9000"
- "9001:9001"
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
command: server /data --console-address ":9001"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
start_period: 30s
restart: unless-stopped
minio-setup:
image: minio/mc
container_name: sono_minio_setup
networks:
- sono-net
depends_on:
minio:
condition: service_healthy
environment:
MINIO_ROOT_USER: ${MINIO_ROOT_USER}
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD}
entrypoint: ["/bin/sh", "/usr/src/app/minio-setup.sh"]
volumes:
- ./minio-setup.sh:/usr/src/app/minio-setup.sh
restart: "no"
api:
container_name: sono_api
build:
context: .
dockerfile: Dockerfile
networks:
- sono-net
# - kworb-net
ports:
- "${API_PORT:-8000}:8000"
environment:
DATABASE_URL: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}"
POSTGRES_SERVER: db
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
SECRET_KEY: ${SECRET_KEY}
REFRESH_TOKEN_SECRET_KEY: ${REFRESH_TOKEN_SECRET_KEY}
REFRESH_TOKEN_ALGORITHM: ${REFRESH_TOKEN_ALGORITHM}
REFRESH_TOKEN_EXPIRE_MINUTES: ${REFRESH_TOKEN_EXPIRE_MINUTES}
MINIO_ENDPOINT: ${MINIO_ENDPOINT}
MINIO_PUBLIC_URL: ${MINIO_PUBLIC_URL}
MINIO_ACCESS_KEY: ${MINIO_ACCESS_KEY}
MINIO_SECRET_KEY: ${MINIO_SECRET_KEY}
MINIO_BUCKET_NAME: ${MINIO_BUCKET_NAME}
SMTP_HOST: ${SMTP_HOST}
SMTP_PORT: ${SMTP_PORT}
SMTP_USERNAME: ${SMTP_USERNAME}
SMTP_PASSWORD: ${SMTP_PASSWORD}
SMTP_FROM: ${SMTP_FROM}
FRONTEND_URL: ${FRONTEND_URL}
PROJECT_NAME: ${PROJECT_NAME}
API_V1_STR: ${API_V1_STR}
ALGORITHM: ${ALGORITHM}
ACCESS_TOKEN_EXPIRE_MINUTES: ${ACCESS_TOKEN_EXPIRE_MINUTES}
KWORB_DB_HOST: ${KWORB_DB_HOST}
KWORB_DB_PORT: ${KWORB_DB_PORT}
KWORB_DB_USER: ${KWORB_DB_USER}
KWORB_DB_PASSWORD: ${KWORB_DB_PASSWORD}
KWORB_DB_NAME: ${KWORB_DB_NAME}
depends_on:
db:
condition: service_healthy
minio:
condition: service_healthy
minio-setup:
condition: service_completed_successfully
volumes:
- ./app:/usr/src/app/app
- ./alembic:/usr/src/app/alembic
- ./alembic.ini:/usr/src/app/alembic.ini
- ./app/core/keys/private_key.pem:/app/core/keys/private_key.pem:ro
restart: unless-stopped
volumes:
postgres_data:
minio_data: