@@ -126,28 +126,33 @@ jobs:
126126
127127 "cd docker/",
128128
129- "# EC2에 저장된 토큰 파일에서 안전하게 읽기 (SSM 로그에 노출 안됨) ",
130- "export DOPPLER_TOKEN=$(sudo cat /etc/tt-secrets/doppler-token)",
129+ "# Doppler token: trailing newline/CRLF 제거해서 안정적으로 주입 ",
130+ "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 토큰도 파일에서 읽기 ",
135- "GITHUB_TOKEN=$(sudo cat /etc/tt-secrets/github-token)",
134+ "# GitHub token: ghcr 로그인 후 즉시 폐기(변수는 쉘 종료 시 사라짐) ",
135+ "GITHUB_TOKEN=\" $(sudo tr -d \"\\r\\n\" < /etc/tt-secrets/github-token)\" ",
136136 "echo \"$GITHUB_TOKEN\" | docker login ghcr.io -u ${{ github.actor }} --password-stdin 2>/dev/null",
137-
138- "# alertmanager.yml가 스스로 환경변수를 참조하지 않아, 스크립트로 치환",
139- "set -a && source doppler.env && set +a",
140- "envsubst < monitoring/alertmanager/alertmanager.yml > /tmp/alertmanager-resolved.yml",
137+ "unset GITHUB_TOKEN",
138+
139+ "# (권장) doppler secrets를 파일로 남기지 않고, envsubst에만 잠깐 쓰기",
140+ "# alertmanager.yml는 런타임 치환이 필요하므로 doppler run 환경에서 envsubst 실행",
141+ "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- bash -lc \"envsubst < monitoring/alertmanager/alertmanager.yml > /tmp/alertmanager-resolved.yml\"",
141142 "cp /tmp/alertmanager-resolved.yml monitoring/alertmanager/alertmanager.yml",
143+ "rm -f /tmp/alertmanager-resolved.yml",
142144
145+ "# compose 전체를 doppler run으로 감싸서, compose 파싱/컨테이너 실행 모두 동일 env 보장",
143146 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose pull",
144147 "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose up -d --force-recreate",
145148
146149 "docker image prune -f",
147150 "docker logout ghcr.io 2>/dev/null",
148151
149152 "echo \"Deployment completed at $(date)\"",
150- "docker compose ps"
153+
154+ "# 마지막 상태 조회도 doppler run으로 감싸서 경고(예: SLACK_WEBHOOK_AUTH) 방지",
155+ "doppler run --project \"$DOPPLER_PROJECT\" --config \"$DOPPLER_CONFIG\" -- docker compose ps"
151156 ]
152157 }' \
153158 --region ${{ secrets.AWS_REGION }}
0 commit comments