Docker 배포

Docker Compose를 활용한 TYDRB 배포

Docker Compose를 사용하면 TYDRB를 한 번의 명령으로 실행할 수 있습니다. SQLite + 로컬 파일 스토리지 기반으로, 별도 외부 서비스 없이 단일 컨테이너로 동작합니다.

사전 요구사항

빠른 시작

별도의 설정 파일 없이 바로 실행할 수 있습니다.

# 이미지 빌드
docker compose build

# 실행
docker compose up -d

브라우저에서 http://localhost:8080에 접속하면 Setup Wizard가 표시됩니다. 마법사에서 기관 정보, 관리자 계정, 시스템 설정을 입력하면 자동으로 초기화됩니다.

# 로그 확인
docker compose logs -f tydrb

# 중지
docker compose down

tydrb-data 볼륨에 데이터베이스(SQLite)와 업로드 파일이 저장됩니다.

설정 파일 마운트

Setup Wizard 대신 미리 준비한 설정 파일을 사용하려면 docker-compose.ymltydrb 서비스에 볼륨을 추가합니다:

services:
  tydrb:
    volumes:
      - tydrb-data:/app/data
      - ./config.yaml:/app/config.yaml:ro  # 설정 파일 마운트

서버는 /app/config.yaml을 자동으로 탐색합니다. 설정 예시는 config/examples/sqlite-local.yaml을 참고하세요.

주의: jwt.secret은 반드시 충분히 긴 랜덤 문자열로 변경하세요.

데이터 백업/복원

# 백업
docker compose exec tydrb cat /app/data/tydrb.db > backup.db

# 복원
docker compose down
docker cp backup.db $(docker compose ps -q tydrb):/app/data/tydrb.db
docker compose up -d

이미지 직접 빌드

Makefile 타겟을 사용할 수도 있습니다:

make docker-build    # Docker 이미지 빌드
make docker-up       # docker compose up -d
make docker-down     # 컨테이너 중지

빌드 시 버전 태그를 지정하려면:

docker build --build-arg VERSION=v1.0.0 -t tydrb-server:v1.0.0 .

문제 해결

포트 충돌

8080 포트가 이미 사용 중인 경우 docker-compose.yml에서 포트 매핑을 변경합니다:

ports:
  - "3080:8080"  # 호스트 3080 → 컨테이너 8080

로그 확인

# 실시간 로그
docker compose logs -f tydrb

# 최근 100줄
docker compose logs --tail 100 tydrb

컨테이너 상태 확인

docker compose ps

On this page