/users/search/** 경로 추가 #110
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |