78 lines
2.0 KiB
YAML
78 lines
2.0 KiB
YAML
# JJServiceManagerRelay — Synology NAS (DSM 7.1 Docker 패키지, docker-compose v1)
|
|
#
|
|
# 처음 실행 / 업데이트:
|
|
# cd /volume1/docker/jjsm/src
|
|
# sudo docker-compose build
|
|
# sudo docker-compose up -d
|
|
#
|
|
# 비밀번호는 같은 폴더의 .env 파일에 넣습니다 (.env.example 참고).
|
|
# 데이터는 한 단계 위 폴더(/volume1/docker/jjsm/db, server, backup)에 저장됩니다.
|
|
|
|
version: "3.8"
|
|
|
|
services:
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: jjsm-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: jjsm
|
|
POSTGRES_USER: jjsm
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?POSTGRES_PASSWORD를 .env에 넣으세요}
|
|
TZ: Asia/Seoul
|
|
volumes:
|
|
- ../db:/var/lib/postgresql/data
|
|
networks: [jjsm]
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U jjsm -d jjsm"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
server:
|
|
build: .
|
|
image: jjsm-server:latest
|
|
container_name: jjsm-server
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
POSTGRES_HOST: db
|
|
POSTGRES_DB: jjsm
|
|
POSTGRES_USER: jjsm
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
JJSM_ADMIN_USER: ${JJSM_ADMIN_USER:-admin}
|
|
JJSM_ADMIN_PASSWORD: ${JJSM_ADMIN_PASSWORD:-}
|
|
JJSM_CODE_HOURS: ${JJSM_CODE_HOURS:-168}
|
|
TZ: Asia/Seoul
|
|
volumes:
|
|
- ../server/logs:/app/logs
|
|
ports:
|
|
# 리버스 프록시(DSM)만 접근하도록 NAS 자신에게만 엶
|
|
- "127.0.0.1:${JJSM_PORT:-21900}:21900"
|
|
networks: [jjsm]
|
|
|
|
backup:
|
|
image: postgres:16-alpine
|
|
container_name: jjsm-backup
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
environment:
|
|
PGHOST: db
|
|
PGDATABASE: jjsm
|
|
PGUSER: jjsm
|
|
PGPASSWORD: ${POSTGRES_PASSWORD}
|
|
BACKUP_KEEP: ${BACKUP_KEEP:-30}
|
|
BACKUP_HOUR: ${BACKUP_HOUR:-3}
|
|
TZ: Asia/Seoul
|
|
volumes:
|
|
- ../backup:/backup
|
|
- ./backup/backup.sh:/backup.sh:ro
|
|
entrypoint: ["/bin/sh", "/backup.sh"]
|
|
networks: [jjsm]
|
|
|
|
networks:
|
|
jjsm:
|
|
name: jjsm
|