@@ -185,22 +185,54 @@ jobs:
185185 deploy :
186186 needs : docker-build
187187 runs-on : ubuntu-latest
188+ if : github.ref == 'refs/heads/main' # ✅ main 브랜치일 때만 실행
188189 env :
189190 DOCKER_IMAGE_NAME : balaw
190191 steps :
192+ - name : Create prod .env file
193+ run : |
194+ cat > .env << 'EOF'
195+ SPRING_PROFILES_ACTIVE=prod
196+ PROD_DATASOURCE_URL=jdbc:mysql://mysql_1:3306/${{ secrets.DB_NAME }}
197+ PROD_DATASOURCE_USERNAME=${{ secrets.DB_USER }}
198+ PROD_DATASOURCE_PASSWORD=${{ secrets.DB_PASSWORD }}
199+
200+ PROD_REDIS_HOST=redis_1
201+ PROD_REDIS_PORT=6379
202+ PROD_REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }}
203+ EOF
204+
191205 - name : AWS SSM Send-Command
192206 uses : peterkimzz/aws-ssm-send-command@master
193207 id : ssm
194208 with :
195209 aws-region : ${{ secrets.AWS_REGION }}
196210 aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
197211 aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
198- instance-ids : " i-006c2e31391fac356 "
212+ instance-ids : " i-094fd5f8988b7330b "
199213 working-directory : /
200214 comment : Deploy
201215 command : |
216+ # EC2 내부에서 prod.env 파일 생성
217+ cat > /home/ec2-user/prod.env << 'EOF'
218+ SPRING_PROFILES_ACTIVE=prod
219+
220+ PROD_DATASOURCE_URL=jdbc:mysql://mysql_1:3306/${{ secrets.DB_NAME }}
221+ PROD_DATASOURCE_USERNAME=${{ secrets.DB_USER }}
222+ PROD_DATASOURCE_PASSWORD=${{ secrets.DB_PASSWORD }}
223+
224+ PROD_REDIS_HOST=redis_1
225+ PROD_REDIS_PORT=6379
226+ PROD_REDIS_PASSWORD=${{ secrets.REDIS_PASSWORD }}
227+ EOF
228+
229+ # 최신 이미지 pull & 컨테이너 실행
202230 docker pull ghcr.io/doohyojeong/${{ env.DOCKER_IMAGE_NAME }}:latest
203231 docker stop app1 2>/dev/null
204232 docker rm app1 2>/dev/null
205- docker run -d --name app1 -p 8080:8080 ghcr.io/doohyojeong/${{ env.DOCKER_IMAGE_NAME }}:latest
206- docker rmi $(docker images -f "dangling=true" -q)
233+ docker run --env-file /home/ec2-user/prod.env -d --name app1 -p 8080:8080 \
234+ ghcr.io/doohyojeong/${{ env.DOCKER_IMAGE_NAME }}:latest
235+
236+ # dangling image 정리 + .env 삭제
237+ docker rmi $(docker images -f "dangling=true" -q)
238+ rm -f /home/ec2-user/prod.env
0 commit comments