Skip to content

Commit 8c055b5

Browse files
authored
Merge pull request #112 from prgrms-web-devcourse-final-project/chore/33-infra
refactor[cicd]: .env 관리 방식 변경
2 parents a919a27 + bc663f6 commit 8c055b5

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

.github/workflows/CI-CD_Pipeline.yml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -250,8 +250,10 @@ jobs:
250250
echo "===== 기존 컨테이너 종료 & 제거 ====="
251251
docker stop app1 2>/dev/null || true
252252
docker rm app1 2>/dev/null || true
253-
# EC2 내부에서 prod.env 파일 생성
254-
cat > /home/ec2-user/prod.env << 'EOF'
253+
254+
# EC2 내부에서 prod.env 파일 생성 (기존 파일 있으면 덮어쓰기)
255+
mkdir -p /home/ec2-user/configs
256+
cat > /home/ec2-user/configs/prod.env << 'EOF'
255257
SPRING_PROFILES_ACTIVE=prod
256258
257259
CUSTOM_JWT_SECRET_KEY=${{ secrets.JWT_SECRET_KEY }}
@@ -261,7 +263,8 @@ jobs:
261263
PROD_DATASOURCE_DRIVER=com.mysql.cj.jdbc.Driver
262264
PROD_DATASOURCE_USERNAME=root
263265
PROD_DATASOURCE_PASSWORD=${{ secrets.DB_PASSWORD }}
264-
PROD_JPA_HIBERNATE_DDL_AUTO=update
266+
# 추후 validate 변경
267+
PROD_JPA_HIBERNATE_DDL_AUTO=update
265268
266269
PROD_REDIS_HOST=redis_1
267270
PROD_REDIS_PORT=6379
@@ -272,23 +275,26 @@ jobs:
272275
send_email_password=${{ secrets.EMAIL_PASSWORD }}
273276
EOF
274277
278+
# 파일 권한 최소화
279+
chmod 600 /home/ec2-user/configs/prod.env
280+
275281
# EC2에서 GHCR 로그인
276282
echo "${{ secrets.GHCR_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
277283
278284
# 최신 이미지 pull & 컨테이너 실행
279285
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/${{ env.DOCKER_IMAGE_NAME }}:latest
280-
docker stop app1 2>/dev/null || true
281-
docker rm app1 2>/dev/null || true
282-
docker run --env-file /home/ec2-user/prod.env \
286+
287+
echo "===== 새로운 컨테이너 실행 ====="
288+
docker run --env-file /home/ec2-user/configs/prod.env \
283289
-d --name app1 \
284290
--network common \
291+
--restart unless-stopped \
285292
-p 8080:8080 \
286293
${{ env.REGISTRY }}/${{ env.IMAGE_PREFIX }}/${{ env.DOCKER_IMAGE_NAME }}:latest
287294
echo "===== 새 컨테이너 로그 출력 ====="
288295
sleep 5
289296
docker logs --tail=100 app1 || true
290297
291298
echo "===== 배포 완료 ====="
292-
# dangling image 정리 + .env 삭제
299+
# dangling image 정리
293300
docker rmi $(docker images -f "dangling=true" -q) || true
294-
rm -f /home/ec2-user/prod.env

0 commit comments

Comments
 (0)