@@ -104,12 +104,12 @@ jobs:
104104 INSTANCE_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=TT-ec2-1" "Name=instance-state-name,Values=running" --query "Reservations[].Instances[].InstanceId" --output text)
105105 echo "INSTANCE_ID=$INSTANCE_ID" >> $GITHUB_ENV
106106
107- - name : AWS SSM Send-Command (EC2 로컬 토큰 사용 - 노출 방지 )
107+ - name : AWS SSM Send-Command (Doppler 완전 통합 )
108108 run : |
109109 aws ssm send-command \
110110 --instance-ids "${{ env.INSTANCE_ID }}" \
111111 --document-name "AWS-RunShellScript" \
112- --comment "Deploy Spring Boot with doppler run (secure )" \
112+ --comment "Deploy with Doppler (all secrets managed centrally )" \
113113 --parameters '{
114114 "commands": [
115115 "#!/bin/bash",
@@ -126,33 +126,31 @@ jobs:
126126
127127 "cd docker/",
128128
129- "# Doppler token: trailing newline/CRLF 제거해서 안정적으로 주입 ",
129+ "# Doppler 설정 (파일에서 토큰만 읽기) ",
130130 "export DOPPLER_TOKEN=\"$(sudo tr -d \"\\r\\n\" < /etc/tt-secrets/doppler-token)\"",
131131 "export DOPPLER_PROJECT=tt",
132132 "export DOPPLER_CONFIG=prd",
133133
134- "# GitHub token: ghcr 로그인 후 즉시 폐기(변수는 쉘 종료 시 사라짐)",
135- "GITHUB_TOKEN=\"$(sudo tr -d \"\\r\\n\" < /etc/tt-secrets/github-token)\"",
136- "echo \"$GITHUB_TOKEN\" | docker login ghcr.io -u ${{ github.actor }} --password-stdin 2>/dev/null",
137- "unset GITHUB_TOKEN",
134+ "# GitHub 레지스트리 로그인 (Doppler에서 GITHUB_TOKEN 주입)",
135+ "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- bash -c \"echo \\$GITHUB_TOKEN | docker login ghcr.io -u ${{ github.actor }} --password-stdin 2>/dev/null\"",
138136
139- "# (권장) doppler secrets를 파일로 남기지 않고, envsubst에만 잠깐 쓰기",
140- "# alertmanager.yml는 런타임 치환이 필요하므로 doppler run 환경에서 envsubst 실행",
137+ "# Alertmanager 설정 파일 환경변수 치환",
141138 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- bash -lc \"envsubst < monitoring/alertmanager/alertmanager.yml > /tmp/alertmanager-resolved.yml\"",
142139 "cp /tmp/alertmanager-resolved.yml monitoring/alertmanager/alertmanager.yml",
143140 "rm -f /tmp/alertmanager-resolved.yml",
144141
145- "# compose 전체를 doppler run으로 감싸서, compose 파싱/컨테이너 실행 모두 동일 env 보장 ",
142+ "# Docker Compose 실행 (모든 환경변수 Doppler에서 주입) ",
146143 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose pull",
147144 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose up -d --force-recreate",
148145
146+ "# 정리",
149147 "docker image prune -f",
150148 "docker logout ghcr.io 2>/dev/null",
151149
152- "echo \"Deployment completed at $(date)\"",
150+ "echo \"✅ Deployment completed at $(date)\"",
153151
154- "# 마지막 상태 조회도 doppler run으로 감싸서 경고(예: SLACK_WEBHOOK_AUTH) 방지 ",
152+ "# 최종 상태 확인 ",
155153 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose ps"
156154 ]
157155 }' \
158- --region ${{ secrets.AWS_REGION }}
156+ --region ${{ secrets.AWS_REGION }}
0 commit comments