-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
89 lines (82 loc) · 3 KB
/
Copy pathdocker-compose.yml
File metadata and controls
89 lines (82 loc) · 3 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
name: roomote
services:
postgres:
container_name: roomote-postgres
image: postgres:17.5@sha256:aadf2c0696f5ef357aa7a68da995137f0cf17bad0bf6e1f17de06ae5c769b302
# Publish datastore ports to loopback only so Postgres, Redis, and MinIO are
# never reachable from another host. The production Caddy overlay resets
# these to none; use an SSH tunnel or reverse proxy if remote access is
# genuinely needed.
ports:
- '127.0.0.1:15432:5432'
volumes:
- pg_data:/var/lib/postgresql/data
- ./.docker/scripts/postgres:/docker-entrypoint-initdb.d
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=password
- POSTGRES_DATABASES=roomote_test,roomote_development
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U postgres -d roomote_development']
interval: 5s
timeout: 30s
retries: 5
start_period: 30s
redis:
container_name: roomote-redis
image: redis:7-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99
ports:
- '127.0.0.1:16379:6379'
volumes:
- redis_data:/data
command: redis-server --appendonly yes
minio:
container_name: roomote-minio
image: minio/minio:RELEASE.2025-09-07T16-13-09Z@sha256:14cea493d9a34af32f524e538b8346cf79f3321eff8e708c1e2960462bd8936e
ports:
- '127.0.0.1:19000:9000'
- '127.0.0.1:19001:9001'
volumes:
- minio_data:/data
environment:
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-roomote}
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-roomote-local-artifacts-password}
command: server /data --console-address ':9001'
minio-init:
image: minio/mc:RELEASE.2025-08-13T08-35-41Z@sha256:a7fe349ef4bd8521fb8497f55c6042871b2ae640607cf99d9bede5e9bdf11727
restart: 'no'
depends_on:
minio:
condition: service_started
environment:
MINIO_ROOT_USER: ${S3_ACCESS_KEY_ID:-roomote}
MINIO_ROOT_PASSWORD: ${S3_SECRET_ACCESS_KEY:-roomote-local-artifacts-password}
S3_BUCKET_ARTIFACTS: ${S3_BUCKET_ARTIFACTS:-roomote-artifacts}
entrypoint: ['/bin/sh', '-c']
command:
- |
until mc alias set roomote http://minio:9000 "$$MINIO_ROOT_USER" "$$MINIO_ROOT_PASSWORD"; do
sleep 1
done
mc mb --ignore-existing "roomote/$$S3_BUCKET_ARTIFACTS"
# Local dev edge mirroring the production Caddy routing: one origin serves
# the web app and proxies the reserved /_roomote-api/* prefix to the API.
# The dev CLI points the public tunnel at this port so hosted compute
# workers can reach the API through the public app URL.
caddy-dev:
container_name: roomote-caddy-dev
image: caddy:2.10-alpine@sha256:4c6e91c6ed0e2fa03efd5b44747b625fec79bc9cd06ac5235a779726618e530d
ports:
- '127.0.0.1:18080:18080'
volumes:
- ./.docker/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
extra_hosts:
- 'host.docker.internal:host-gateway'
volumes:
pg_data:
redis_data:
minio_data:
networks:
default:
name: roomote_default
driver: bridge