Skip to content

/users/search/** 경로 추가 #110

/users/search/** 경로 추가

/users/search/** 경로 추가 #110

Workflow file for this run

name: Deploy To EC2
on:
push:
branches:
- main
jobs:
build-and-push:
name: 🔧 Build & Push Docker Image to ECR
runs-on: ubuntu-latest
steps:
- name: 📦 Github Repository 파일 불러오기
uses: actions/checkout@v4
- name: ☕ JDK 21버전 설치
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: 21
- name: 🧪 테스트 및 빌드하기
env:
JWT_SECRET: ${{ secrets.JWT_SECRET }}
EUREKA_DEFAULTZONE: ${{ secrets.EUREKA_DEFAULTZONE }}
run: |
chmod +x ./gradlew
./gradlew clean build
- name: 🔐 AWS 자격 증명 설정
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-northeast-2
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: 🔐 ECR 로그인
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: 🐳 Docker 이미지 생성
run: docker build -t ${{ secrets.IMAGE_NAME }} .
- name: 🏷️ Docker 이미지에 Tag 붙이기
run: docker tag ${{ secrets.IMAGE_NAME }} ${{ steps.login-ecr.outputs.registry }}/${{ secrets.REPOSITORY_NAME }}:${{ secrets.IMAGE_NAME }}
- name: 🚀 ECR에 Docker 이미지 Push
run: docker push ${{ steps.login-ecr.outputs.registry }}/${{ secrets.REPOSITORY_NAME }}:${{ secrets.IMAGE_NAME }}
deploy-to-ec2:
name: 🚀 Deploy To EC2 (Self-hosted)
# ✅ 배포만 self-hosted runner에서 실행
runs-on: self-hosted # 추후 해당 부분 label을 붙여 특정 runner에서만 실행되도록 바궈야 됨
needs: build-and-push
steps:
- name: 🔐 AWS 자격 증명 설정
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: ap-northeast-2
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
- name: 🔐 ECR 로그인
run: |
aws ecr get-login-password --region ap-northeast-2 | \
docker login --username AWS --password-stdin 869508798906.dkr.ecr.ap-northeast-2.amazonaws.com
- name: 🧹 Stop & Remove existing container
run: |
docker stop ${{ secrets.IMAGE_NAME }} || true
docker rm ${{ secrets.IMAGE_NAME }} || true
- name: 📥 Pull image from ECR
run: |
docker pull 869508798906.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.REPOSITORY_NAME }}:${{ secrets.IMAGE_NAME }}
- name: 🚀 Run container
run: |
docker run -d --name ${{ secrets.IMAGE_NAME }} \
--network ${{secrets.DOCKER_NETWORK_NAME}} \
-p 8000:8000 \
-e S3_SECRET_KEY="${{ secrets.S3_SECRET_KEY }}" \
-e DB_HOST="${{secrets.DB_HOST}}" \
-e APP_HOST="${{secrets.APP_HOST}}" \
-e S3_BUCKET="${{ secrets.S3_BUCKET }}" \
-e S3_ACCESS_KEY="${{ secrets.S3_ACCESS_KEY }}" \
-e DB_USERNAME="${{ secrets.DB_USERNAME }}" \
-e DB_PASSWORD="${{ secrets.DB_PASSWORD }}" \
-e JWT_SECRET="${{ secrets.JWT_SECRET }}" \
-e EUREKA_DEFAULTZONE="${{ secrets.EUREKA_DEFAULTZONE }}" \
-e EC2_HOST_INFRA="${{ secrets.EC2_HOST_INFRA }}" \
869508798906.dkr.ecr.ap-northeast-2.amazonaws.com/${{ secrets.REPOSITORY_NAME }}:${{ secrets.IMAGE_NAME }}