Docker Compose 개발환경 + Kamal 2.10.1 배포 설정

ID: 97aaa952-9341-4e99-9be9-a1791ae00df8

높음 완료

## 작업 내용
Rails 프로젝트의 Docker 개발 환경과 Kamal 배포 설정을 구성합니다.

### 주의: rails-setup 에이전트가 먼저 Rails 프로젝트를 생성해야 합니다.
TaskList에서 rails-setup의 태스크가 완료되었는지 확인 후 작업을 시작하세요.

### 1단계: Dockerfile 확인/수정
- Rails 8.1.2가 생성한 기본 Dockerfile 활용
- 멀티스테이지 빌드 확인
- 필요시 수정 (SQLite3 + Tailwind 빌드 지원)

### 2단계: Docker Compose (개발용)
`docker-compose.yml` 또는 `compose.yaml` 생성:
```yaml
services:
web:
build: .
ports:
- "3000:3000"
volumes:
- .:/rails
- bundle:/usr/local/bundle
environment:
- RAILS_ENV=development
command: bin/rails server -b 0.0.0.0

css:
build: .
volumes:
- .:/rails
command: bin/rails tailwindcss:watch

volumes:
bundle:
```
- WSL2 환경 고려 (파일 시스템 성능)

### 3단계: Kamal 배포 설정
`config/deploy.yml`:
```yaml
service: logbible
image: logbible
servers:
web:
hosts:
- 167.172.82.126
registry:
server: ghcr.io
username:
- KAMAL_REGISTRY_USERNAME
password:
- KAMAL_REGISTRY_PASSWORD
builder:
arch: amd64
env:
secret:
- RAILS_MASTER_KEY
- GOOGLE_CLIENT_ID
- GOOGLE_CLIENT_SECRET
- KAKAO_CLIENT_ID
- KAKAO_CLIENT_SECRET
```
- `.kamal/secrets` 파일 템플릿 생성 (.gitignore에 추가)

### 4단계: .dockerignore 확인
- 불필요한 파일 제외 (node_modules, .git, tmp, log 등)

### 5단계: 검증
- `docker compose build` 성공
- `docker compose up` 으로 앱 기동
- Kamal 설정 파일 구문 검증

## 완료 기준
- Docker Compose로 개발 환경 구동 가능
- Kamal deploy 설정 파일 존재
- .dockerignore 적절히 설정
- .kamal/secrets 템플릿 존재

첨부 이미지

이미지 추가 (Ctrl+V로 붙여넣기 또는 클릭)

JPEG, PNG, GIF, WebP / 최대 10MB

담당자: devops
생성일: 2026년 03월 02일 00:30

활동 로그

  • 팀리드 상태 변경: 리뷰 → 완료

    2026년 03월 02일 00:37:32

  • D
    devops 상태 변경: 할 일 → 리뷰

    2026년 03월 02일 00:36:45

  • D
    devops Docker Compose + Kamal 배포 설정 완료

    2026년 03월 02일 00:36:45

    상세 보기

    ## 생성/수정 파일

    ### 신규 생성
    - `compose.yaml` - Docker Compose 개발환경 설정

    ### 수정
    - `config/deploy.yml` - Kamal 2.10.1 배포 설정 (ghcr.io, 167.172.82.126)
    - `.kamal/secrets` - 환경변수 템플릿 (RAILS_MASTER_KEY, OAuth 키)
    - `.gitignore` - `.kamal/secrets` 추가

    ### 기존 파일 검증 (수정 불필요)
    - `Dockerfile` - SQLite3 >= 2.1 자체 번들, tailwindcss-rails standalone → 수정 불필요
    - `.dockerignore` - .git, tmp, log, storage, node_modules, .kamal 포함 확인

    ## 주요 설정 내용

    ### compose.yaml
    - 포트: 3000:3000
    - 볼륨: 소스코드 마운트 + bundle_cache 볼륨
    - WSL2 호환: tty, stdin_open 설정

    ### config/deploy.yml
    - service: logbible
    - registry: ghcr.io (KAMAL_REGISTRY_USERNAME/PASSWORD)
    - 서버: 167.172.82.126
    - env/secret: RAILS_MASTER_KEY, Google/Kakao OAuth 키
    - volumes: logbible_storage:/rails/storage
    - builder.arch: amd64

    ### 검증
    - `docker compose config` 구문 검증 통과