From 14cf2b2a880adf0ee199563af9a0c88505e51c7e Mon Sep 17 00:00:00 2001 From: jinnxyoung Date: Sun, 9 Feb 2025 18:09:33 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[#294]=20chore:=20AWS=20ECR=20=EC=9D=B8?= =?UTF-8?q?=ED=94=84=EB=9D=BC=20=EB=B3=80=EA=B2=BD=EC=97=90=20=EB=94=B0?= =?UTF-8?q?=EB=A5=B8=20release-blue-green.yml=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release-blue-green.yml | 40 +++++++++++++++++------- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release-blue-green.yml b/.github/workflows/release-blue-green.yml index 8760794..8f51792 100644 --- a/.github/workflows/release-blue-green.yml +++ b/.github/workflows/release-blue-green.yml @@ -47,12 +47,30 @@ jobs: - name: BootJar with Gradle run: ./gradlew clean bootJar -Dspring.profiles.active=release - # Docker Image Push - - name: Docker Image push + # Configure AWS Credentials by using IAM inform + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ env.AWS_REGION }} + + # Login to ECR + - name: Login to Amazon ECR + id: login-ecr + uses: aws-actions/amazon-ecr-login@v1 + + # Docker Image Push to ECR and Run container with Image pull from ECR + - name: Build, tag, and push image to Amazon ECR + id: build-image + env: + ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} + IMAGE_TAG: ${{ env.GITHUB_SHA }} run: | - docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} - docker build -t ${{ secrets.DOCKERHUB_USERNAME}}/${{ secrets.DOCKERHUB_REPOSITORY}} ./ - docker push ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY}} + # Build a docker container and push it to ECR so that it can be deployed to ECS. + docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG . + docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG + echo "::set-output name=image::$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" # Docker Compose - name: Docker Compose @@ -62,9 +80,9 @@ jobs: username: ${{ secrets.SSH_USERNAME }} key: ${{ secrets.SSH_PRIVATE_KEY }} script: | - sudo docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }} - sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY}} - sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY}} ${{ secrets.DOCKER_IMAGE_NAME }} - cd ~ - sudo chmod +x deploy.sh - ./deploy.sh + aws ecr get-login-password --region ${{ env.AWS_REGION }} | docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }} + docker compose stop ${{ secrets.DOCKER_SERVICE_NAME }} + docker compose rm -f ${{ secrets.DOCKER_SERVICE_NAME }} + docker pull ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.GITHUB_SHA }} + docker tag ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.GITHUB_SHA }} ${{ secrets.DOCKER_IMAGE_NAME }} + docker compose up -d From 2be9fb6768664f7bde00a2e9b2bc08a7dc612e37 Mon Sep 17 00:00:00 2001 From: dl-00-e8 Date: Sun, 9 Feb 2025 18:23:13 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[#294]=20chore:=20=EC=9D=B8=ED=94=84?= =?UTF-8?q?=EB=9D=BC=20=EB=A7=88=EC=9D=B4=EA=B7=B8=EB=A0=88=EC=9D=B4?= =?UTF-8?q?=EC=85=98=EC=9C=BC=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20Workflow=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release-blue-green.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release-blue-green.yml b/.github/workflows/release-blue-green.yml index 8f51792..abbc02b 100644 --- a/.github/workflows/release-blue-green.yml +++ b/.github/workflows/release-blue-green.yml @@ -5,6 +5,11 @@ on: branches: - main +env: + AWS_REGION: ap-northeast-2 + ECR_REPOSITORY: ${{ secrets.ECR_REPOSITORY }} + GITHUB_SHA: ${{ github.sha }} + jobs: build: # ubuntu 버전 지정 @@ -81,8 +86,8 @@ jobs: key: ${{ secrets.SSH_PRIVATE_KEY }} script: | aws ecr get-login-password --region ${{ env.AWS_REGION }} | docker login --username AWS --password-stdin ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }} - docker compose stop ${{ secrets.DOCKER_SERVICE_NAME }} - docker compose rm -f ${{ secrets.DOCKER_SERVICE_NAME }} - docker pull ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.GITHUB_SHA }} - docker tag ${{ steps.login-ecr.outputs.registry }}/${{ env.ECR_REPOSITORY }}:${{ env.GITHUB_SHA }} ${{ secrets.DOCKER_IMAGE_NAME }} - docker compose up -d + sudo docker pull ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY}} + sudo docker tag ${{ secrets.DOCKERHUB_USERNAME }}/${{ secrets.DOCKERHUB_REPOSITORY}} ${{ secrets.DOCKER_IMAGE_NAME }} + cd ~ + sudo chmod +x deploy.sh + ./deploy.sh \ No newline at end of file