Skip to content

fix(deploy): .env 에 .env.example 신규 키 자동 sync — backend 부팅 실패 방지#29

Merged
i3months merged 1 commit into
devfrom
fix/workflow-env-sync
May 28, 2026
Merged

fix(deploy): .env 에 .env.example 신규 키 자동 sync — backend 부팅 실패 방지#29
i3months merged 1 commit into
devfrom
fix/workflow-env-sync

Conversation

@i3months

Copy link
Copy Markdown
Member

PR #27 머지 후 self-hosted runner 가 자동 발화해 backend 컨테이너를 빌드 했으나 Exit (1) 실패

원인:

  • PR Feature/resume upload - 이력서 레포 등록 및 분석 결과 조회  #27 이 .env.example 에 backend 비밀값 16개 (JWT_SECRET, ENCRYPTION_KEY, ...) 를 추가
  • 원격 서버 .env 는 이미 존재 → 기존 워크플로우 'Ensure .env exists' 단계가 cp .env.example .env 를 skip → .env 에 새 키들 부재
  • docker-compose 의 ${JWT_SECRET:-} 가 빈 문자열을 Spring 에 주입 (env 가 unset 이 아니라 set-but-empty 상태로 전달됨)
  • Spring SecurityProperties / GithubOAuthProperties 의 @notblank 검증 실패

수정:

  • Secret 주입 단계 직후, .env.example 에 있지만 .env 에 없는 키 목록을 추출해 default 값과 함께 .env 끝에 append (기존 값은 절대 덮어쓰지 않음)
  • "# ---- synced from .env.example by deploy-app.yml ----" 주석으로 구분
  • awk 한 블럭 — 외부 의존성 없음

검증 (로컬 dry run):

  • 기존 .env (POSTGRES_PASSWORD=mysecret123, LLM_API_KEY=abc) 보존
  • .env.example 에만 있던 JWT_SECRET, ENCRYPTION_KEY, NEW_KEY append 확인

오늘 원격 .env 는 이미 수동 복구되어 backend healthy. 본 PR 머지 이후로는 .env.example 신규 키 추가 시 자동 sync 되어 같은 사고 반복 없음.

배경:
PR #27 머지 후 self-hosted runner 가 자동 발화해 backend 컨테이너를 빌드/실행
했으나 Exit (1) 로 31시간 방치됨.

원인:
- PR #27 이 .env.example 에 backend 비밀값 16개 (JWT_SECRET, ENCRYPTION_KEY, ...)
  를 추가
- 원격 서버 .env 는 이미 존재 → 기존 워크플로우 'Ensure .env exists' 단계가
  cp .env.example .env 를 skip → .env 에 새 키들 부재
- docker-compose 의 \${JWT_SECRET:-} 가 빈 문자열을 Spring 에 주입 (env 가 unset
  이 아니라 set-but-empty 상태로 전달됨)
- Spring SecurityProperties / GithubOAuthProperties 의 @notblank 검증 실패

수정:
- Secret 주입 단계 직후, .env.example 에 있지만 .env 에 없는 키 목록을 추출해
  default 값과 함께 .env 끝에 append (기존 값은 절대 덮어쓰지 않음)
- "# ---- synced from .env.example by deploy-app.yml ----" 주석으로 구분
- awk 한 블럭 — 외부 의존성 없음

검증 (로컬 dry run):
- 기존 .env (POSTGRES_PASSWORD=mysecret123, LLM_API_KEY=abc) 보존
- .env.example 에만 있던 JWT_SECRET, ENCRYPTION_KEY, NEW_KEY append 확인

오늘 원격 .env 는 이미 수동 복구되어 backend healthy. 본 PR 머지 이후로는
.env.example 신규 키 추가 시 자동 sync 되어 같은 사고 반복 없음.
@vercel

vercel Bot commented May 28, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
stackup Ready Ready Preview, Comment May 28, 2026 1:56pm

@i3months i3months merged commit 1247d3b into dev May 28, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant