|
1
|
services: |
|
2
|
backend: |
|
3
|
build: . |
|
4
|
command: python manage.py runserver 0.0.0.0:8000 |
|
5
|
ports: |
|
6
|
- "8000:8000" |
|
7
|
- "2222:2222" |
|
8
|
env_file: .env.example |
|
9
|
environment: |
|
10
|
DJANGO_DEBUG: "true" |
|
11
|
DJANGO_SECRET_KEY: "local-dev-only-not-for-production-use-change-in-prod" |
|
12
|
SECURE_SSL_REDIRECT: "false" |
|
13
|
SESSION_COOKIE_SECURE: "false" |
|
14
|
CSRF_COOKIE_SECURE: "false" |
|
15
|
POSTGRES_HOST: postgres |
|
16
|
REDIS_URL: redis://redis:6379/1 |
|
17
|
CELERY_BROKER: redis://redis:6379/0 |
|
18
|
EMAIL_HOST: mailpit |
|
19
|
volumes: |
|
20
|
- .:/app |
|
21
|
- ./repos:/data/repos |
|
22
|
depends_on: |
|
23
|
postgres: |
|
24
|
condition: service_healthy |
|
25
|
redis: |
|
26
|
condition: service_healthy |
|
27
|
|
|
28
|
celery-worker: |
|
29
|
build: . |
|
30
|
command: celery -A config.celery worker -l info -Q celery |
|
31
|
env_file: .env.example |
|
32
|
environment: |
|
33
|
POSTGRES_HOST: postgres |
|
34
|
REDIS_URL: redis://redis:6379/1 |
|
35
|
CELERY_BROKER: redis://redis:6379/0 |
|
36
|
volumes: |
|
37
|
- .:/app |
|
38
|
depends_on: |
|
39
|
postgres: |
|
40
|
condition: service_healthy |
|
41
|
redis: |
|
42
|
condition: service_healthy |
|
43
|
|
|
44
|
celery-beat: |
|
45
|
build: . |
|
46
|
command: celery -A config.celery beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler |
|
47
|
env_file: .env.example |
|
48
|
environment: |
|
49
|
POSTGRES_HOST: postgres |
|
50
|
REDIS_URL: redis://redis:6379/1 |
|
51
|
CELERY_BROKER: redis://redis:6379/0 |
|
52
|
volumes: |
|
53
|
- .:/app |
|
54
|
depends_on: |
|
55
|
postgres: |
|
56
|
condition: service_healthy |
|
57
|
redis: |
|
58
|
condition: service_healthy |
|
59
|
|
|
60
|
postgres: |
|
61
|
image: postgres:16-alpine |
|
62
|
ports: |
|
63
|
- "5432:5432" |
|
64
|
environment: |
|
65
|
POSTGRES_DB: fossilrepo |
|
66
|
POSTGRES_USER: dbadmin |
|
67
|
# Dev-only credentials. Override via .env in production. |
|
68
|
POSTGRES_PASSWORD: Password123 |
|
69
|
volumes: |
|
70
|
- pgdata:/var/lib/postgresql/data |
|
71
|
healthcheck: |
|
72
|
test: ["CMD-SHELL", "pg_isready -U dbadmin -d fossilrepo"] |
|
73
|
interval: 5s |
|
74
|
timeout: 5s |
|
75
|
retries: 5 |
|
76
|
|
|
77
|
redis: |
|
78
|
image: redis:7-alpine |
|
79
|
ports: |
|
80
|
- "6379:6379" |
|
81
|
healthcheck: |
|
82
|
test: ["CMD", "redis-cli", "ping"] |
|
83
|
interval: 5s |
|
84
|
timeout: 5s |
|
85
|
retries: 5 |
|
86
|
|
|
87
|
mailpit: |
|
88
|
image: axllent/mailpit |
|
89
|
ports: |
|
90
|
- "8025:8025" |
|
91
|
- "1025:1025" |
|
92
|
|
|
93
|
minio: |
|
94
|
image: minio/minio |
|
95
|
command: server /data --console-address ":9001" |
|
96
|
ports: |
|
97
|
- "9000:9000" |
|
98
|
- "9001:9001" |
|
99
|
environment: |
|
100
|
MINIO_ROOT_USER: minioadmin |
|
101
|
MINIO_ROOT_PASSWORD: minioadmin |
|
102
|
profiles: |
|
103
|
- storage |
|
104
|
|
|
105
|
volumes: |
|
106
|
pgdata: |
|
107
|
|