Implements https://tangled.org/@parakeet.at/plc-mirror/issues/3. This is a very basic setup that doesn't do any network isolation outside of the stack, but it should work as a good starting point.
+1
.dockerignore
+1
.dockerignore
···
1
+
target/
+31
compose.yml
+31
compose.yml
···
1
+
services:
2
+
plc-mirror:
3
+
image: registry.gitlab.com/parakeet-social/plc-mirror:main
4
+
restart: unless-stopped
5
+
ports:
6
+
- 8080:8080
7
+
depends_on:
8
+
plc-mirror-db:
9
+
condition: service_healthy
10
+
environment:
11
+
PLC_DB_URI: postgres://plcmirror:${PLC_MIRROR_DB_PASSWORD:?}@plc-mirror-db/plcmirror
12
+
PLC_BIND_ADDR: 0.0.0.0:8080
13
+
14
+
plc-mirror-db:
15
+
image: postgres:18-alpine
16
+
restart: unless-stopped
17
+
environment:
18
+
POSTGRES_USER: plcmirror
19
+
POSTGRES_PASSWORD: ${PLC_MIRROR_DB_PASSWORD:?}
20
+
POSTGRES_DB: plcmirror
21
+
volumes:
22
+
- plc-mirror-db-data:/var/lib/postgresql/data
23
+
healthcheck:
24
+
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
25
+
interval: 5s
26
+
timeout: 5s
27
+
retries: 5
28
+
start_period: 10s
29
+
30
+
volumes:
31
+
plc-mirror-db-data: