chore: streamline deployment configuration for Gitea registry images and Watchtower updates
Build and Push Docker Image / build-and-push (push) Canceled after 0s

This commit is contained in:
2026-08-21 18:30:34 +09:00
parent 3e312f3960
commit 309060e4da
4 changed files with 45 additions and 20 deletions
+25 -8
View File
@@ -72,7 +72,7 @@
## 🚀 빠른 시작 (Docker 배포)
CheckFlow는 프로덕션 컨테이너 이미지와 자동 데이터베이스 마이그레이션을 지원하여 `docker compose` 명령 하나로 즉시 구동됩니다.
CheckFlow는 빌드된 레지스트리 이미지와 자동 데이터베이스 마이그레이션 진입점(`docker-entrypoint.sh`)을 지원하여 `docker compose` 명령 하나로 즉시 배포 및 구동됩니다.
### 1. 환경 변수 구성
`.env.example` 파일을 복사하여 환경 변수를 설정합니다:
@@ -81,13 +81,13 @@ CheckFlow는 프로덕션 컨테이너 이미지와 자동 데이터베이스
cp .env.example .env
```
`.env` 파일 예시:
`.env` 파일 설정:
```env
# 데이터베이스 비밀번호 (프로덕션 환경에서는 안전한 비밀번호로 변경하세요)
POSTGRES_PASSWORD=your_secure_password
# 서비스 도메인 또는 접근 IP
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_URL=https://todo.yourdomain.com
# NextAuth 인증 시크릿 키 (openssl rand -base64 32 등으로 생성)
NEXTAUTH_SECRET=your_generated_random_secret_string
@@ -95,17 +95,34 @@ NEXTAUTH_SECRET=your_generated_random_secret_string
# 외부 노출 포트 (기본값: 3000)
PORT=3000
# (선택사항) 커스텀 레지스트리 이미지를 사용할 경우
# CHECKFLOW_IMAGE=gitea.example.com/username/checkflow:latest
# Gitea / Docker 컨테이너 레지스트리 이미지 주소
CHECKFLOW_IMAGE=git.yourdomain.com/neru_han/checkflow:latest
```
### 2. 컨테이너 실행
### 2. 최신 이미지 가져오기 및 컨테이너 실행
```bash
# 최신 배포 이미지 다운로드
docker compose pull
# 백그라운드 컨테이너 실행
docker compose up -d
```
> 💡 컨테이너가 실행될 때 `docker-entrypoint.sh`가 PostgreSQL 헬스체크 후 **Prisma 스키마 마이그레이션을 자동으로 수행**하므로 별도의 수동 DB 설정 명령이 필요하지 않습니다.
> 💡 **자동 DB 마이그레이션**: 컨테이너 구동 시 `docker-entrypoint.sh`가 PostgreSQL 헬스체크를 확인한 후 `prisma migrate deploy`를 자동 실행하므로 수동 DB 마이그레이션 절차가 필요하지 않습니다.
브라우저에서 `http://localhost:3000`에 접속하여 첫 관리자/사용자 계정을 생성하세요.
### 🔄 Watchtower 기반 자동 갱신 권장
`docker-compose.yml``app` 서비스에는 `com.centurylinklabs.watchtower.enable=true` 라벨이 포함되어 있습니다.
Gitea Actions CI 파이프라인에서 새 이미지가 푸시되면 Watchtower가 이를 감지하여 무중단에 가깝게 컨테이너를 최신 버전으로 자동 갱신할 수 있습니다:
```bash
# Watchtower를 실행 중인 경우 자동 감지 (또는 원클릭 업데이트 지원)
docker run -d \
--name watchtower \
--restart unless-stopped \
-v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower --interval 300 --cleanup --label-enable
```
브라우저에서 설정한 도메인(또는 `http://localhost:3000`)에 접속하여 첫 관리자 계정을 등록하고 사용을 시작하세요.
---