1version: '3.8'
2name: localdev-plc
3volumes:
4 plc_db:
5 plc_ts:
6 plc_tls:
7services:
8 db:
9 image: postgres:14.4-alpine
10 restart: unless-stopped
11 environment:
12 - POSTGRES_USER=pg
13 - POSTGRES_PASSWORD=password
14 healthcheck:
15 test: 'pg_isready -U pg'
16 interval: 500ms
17 timeout: 10s
18 retries: 20
19 volumes:
20 - plc_db:/var/lib/postgresql/data
21 - ./init.sql:/docker-entrypoint-initdb.d/init.sql
22 app:
23 depends_on:
24 db:
25 condition: service_healthy
26 restart: true
27 image: plcjs
28 restart: unless-stopped
29 environment:
30 - DATABASE_URL=postgres://pg:password@db/plc
31 - DEBUG_MODE=1
32 - LOG_ENABLED=true
33 - LOG_LEVEL=debug
34 - DB_CREDS_JSON={"username":"pg","password":"password","host":"db","port":"5432","database":"plc"}
35 - DB_MIGRATE_CREDS_JSON={"username":"pg","password":"password","host":"db","port":"5432","database":"plc"}
36 - ENABLE_MIGRATIONS=true
37 - LOG_DESTINATION=1
38 ports:
39 - '3000:3000'
40 tailscale:
41 image: tailscale/tailscale:latest
42 restart: unless-stopped
43 environment:
44 # OPTIONAL - TS_AUTHKEY=YOUR-TS-KEY-GOES-HERE
45 - TS_STATE_DIR=/var/run/tailscale
46 - TS_HOSTNAME=plc
47 volumes:
48 - plc_tls:/mnt/tls
49 - plc_ts:/var/run/tailscale
50 nginx:
51 image: nginx
52 restart: unless-stopped
53 network_mode: service:tailscale
54 volumes:
55 - ./nginx.conf:/etc/nginx/nginx.conf
56 - plc_tls:/mnt/tls:ro