From 2803d1ea617c19bfc6d9d49be0da4e5f8bc7522a Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sat, 20 Jul 2024 10:22:25 +0900 Subject: [PATCH 1/6] =?UTF-8?q?feat:=20AWS=20Cloud=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/be-cd.yml | 22 +++++++++----- .github/workflows/be-ci.yml | 30 +++++++++++++++++++ be/build.gradle | 3 ++ be/src/main/resources/application-filter.yml | 2 +- be/src/main/resources/application-localdb.yml | 6 ++-- 5 files changed, 50 insertions(+), 13 deletions(-) diff --git a/.github/workflows/be-cd.yml b/.github/workflows/be-cd.yml index 663428c70..f81774b74 100644 --- a/.github/workflows/be-cd.yml +++ b/.github/workflows/be-cd.yml @@ -45,14 +45,20 @@ jobs: push: true tags: ${{ secrets.BE_DOCKER_IMAGE_NAME }} - name: 어플리케이션을 배포한다 - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.HOST_ADDRESS }} - username: ${{ secrets.HOST_USERNAME }} - key: ${{ secrets.HOST_KEY }} - port: ${{ secrets.HOST_PORT }} - script: | + env: + PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + HOST: ${{ secrets.HOST_ADDRESS }} + USER: ${{ secrets.HOST_USERNAME }} + TAG: ${{ secrets.BE_DOCKER_IMAGE_NAME }} + run: | + # Private key를 파일로 생성합니다. + echo "$PRIVATE_KEY" > private_key.pem + chmod 600 private_key.pem + + # EC2 인스턴스에 SSH로 접속하여 Docker 컨테이너를 관리합니다. + ssh -o StrictHostKeyChecking=no -i private_key.pem $USER@$HOST " sudo docker compose -f docker-compose-be-app.yml down -v sudo docker compose -f docker-compose-be-app.yml pull sudo docker compose -f docker-compose-be-app.yml up -d - sudo docker image prune -f \ No newline at end of file + sudo docker image prune -f + " diff --git a/.github/workflows/be-ci.yml b/.github/workflows/be-ci.yml index 3563938ff..cc96d87f0 100644 --- a/.github/workflows/be-ci.yml +++ b/.github/workflows/be-ci.yml @@ -36,3 +36,33 @@ jobs: uses: coverallsapp/github-action@v2 with: base-path: COVERALLS_PATH + - name: 도커 허브에 로그인한다 + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_HUB_USERNAME }} + password: ${{ secrets.DOCKER_HUB_PASSWORD }} + - name: 어플리케이션의 도커 이미지를 빌드하고 도커 허브에 푸시한다 + uses: docker/build-push-action@v4 + with: + context: . + file: ./Dockerfile.be + push: true + tags: ${{ secrets.BE_DOCKER_IMAGE_NAME }} + - name: 어플리케이션을 배포한다 + env: + PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + HOST: ${{ secrets.HOST_ADDRESS }} + USER: ${{ secrets.HOST_USERNAME }} + TAG: ${{ secrets.BE_DOCKER_IMAGE_NAME }} + run: | + # Private key를 파일로 생성합니다. + echo "$PRIVATE_KEY" > private_key.pem + chmod 600 private_key.pem + + # EC2 인스턴스에 SSH로 접속하여 Docker 컨테이너를 관리합니다. + ssh -o StrictHostKeyChecking=no -i private_key.pem $USER@$HOST " + sudo docker compose -f docker-compose-be-app.yml down -v + sudo docker compose -f docker-compose-be-app.yml pull + sudo docker compose -f docker-compose-be-app.yml up -d + sudo docker image prune -f + " diff --git a/be/build.gradle b/be/build.gradle index eeba672d0..afe43a4e5 100644 --- a/be/build.gradle +++ b/be/build.gradle @@ -35,6 +35,9 @@ dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' + // actuator + implementation 'org.springframework.boot:spring-boot-starter-actuator' + // querydsl implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" diff --git a/be/src/main/resources/application-filter.yml b/be/src/main/resources/application-filter.yml index 18754d6f6..d0f5cba6e 100644 --- a/be/src/main/resources/application-filter.yml +++ b/be/src/main/resources/application-filter.yml @@ -8,4 +8,4 @@ filter: POST /api/images,GET /api/feed/.*/comments/.*/replies,GET /api/feed/.*/comments/.*/replies/.*, GET /api/feed_collections, GET /api/feed_collections/.*, GET /api/stores/.*, GET /api/stores/search, GET /api/feed_collections/.*/comments, - GET /api/auth/oauth/google + GET /api/auth/oauth/google, GET /actuator/.*, GET /actuator diff --git a/be/src/main/resources/application-localdb.yml b/be/src/main/resources/application-localdb.yml index 46d8ebc62..0fbc1fb34 100644 --- a/be/src/main/resources/application-localdb.yml +++ b/be/src/main/resources/application-localdb.yml @@ -5,9 +5,7 @@ spring: username: bono password: 1111 jpa: - show-sql: true + # show-sql: true hibernate: ddl-auto: create-drop - properties: - hibernate: - format_sql: true + From c8ec0e3096a2f97aae835246d371a598d4d31fc7 Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sat, 20 Jul 2024 11:09:36 +0900 Subject: [PATCH 2/6] =?UTF-8?q?feat:=20yml=EC=84=A4=EC=A0=95=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.be | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.be b/Dockerfile.be index 11b43422e..112081ccf 100644 --- a/Dockerfile.be +++ b/Dockerfile.be @@ -1,3 +1,3 @@ FROM openjdk:11 COPY ./be/build/libs/*.jar app.jar -ENTRYPOINT ["java","-Dspring.config.location=file:/etc/be/conf/","-jar","app.jar","--spring.profiles.active=dev"] +ENTRYPOINT ["java","-Dspring.config.location=file:~/be/conf/","-jar","app.jar","--spring.profiles.active=dev"] From 33361a98a476e0c54d1d7fb5bd8aeb9d4fff3c21 Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sat, 20 Jul 2024 11:25:50 +0900 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20yml=EC=84=A4=EC=A0=95=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.be | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.be b/Dockerfile.be index 112081ccf..09c52ae4a 100644 --- a/Dockerfile.be +++ b/Dockerfile.be @@ -1,3 +1,3 @@ FROM openjdk:11 COPY ./be/build/libs/*.jar app.jar -ENTRYPOINT ["java","-Dspring.config.location=file:~/be/conf/","-jar","app.jar","--spring.profiles.active=dev"] +ENTRYPOINT ["java","-Dspring.config.location=file:be/conf/","-jar","app.jar","--spring.profiles.active=dev"] From fe2fd3d97eb1238ed6bb939cff92c517943fe441 Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sat, 20 Jul 2024 11:31:00 +0900 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20yml=EC=84=A4=EC=A0=95=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.be | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.be b/Dockerfile.be index 09c52ae4a..798cea90c 100644 --- a/Dockerfile.be +++ b/Dockerfile.be @@ -1,3 +1,3 @@ FROM openjdk:11 COPY ./be/build/libs/*.jar app.jar -ENTRYPOINT ["java","-Dspring.config.location=file:be/conf/","-jar","app.jar","--spring.profiles.active=dev"] +ENTRYPOINT ["java","-Dspring.config.location=file:/home/ubuntu/be/conf","-jar","app.jar","--spring.profiles.active=dev"] From a2823c1bc9fda864acf9707fe46b6cfda51168f5 Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sat, 20 Jul 2024 11:40:09 +0900 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20yml=EC=84=A4=EC=A0=95=ED=8C=8C?= =?UTF-8?q?=EC=9D=BC=20=EC=9C=84=EC=B9=98=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile.be | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.be b/Dockerfile.be index 798cea90c..c8957169c 100644 --- a/Dockerfile.be +++ b/Dockerfile.be @@ -1,3 +1,3 @@ FROM openjdk:11 COPY ./be/build/libs/*.jar app.jar -ENTRYPOINT ["java","-Dspring.config.location=file:/home/ubuntu/be/conf","-jar","app.jar","--spring.profiles.active=dev"] +ENTRYPOINT ["java","-Dspring.config.location=file:/be/conf/","-jar","app.jar","--spring.profiles.active=dev"] From d882bf1e0283a5455155707eca0664c735515c3a Mon Sep 17 00:00:00 2001 From: ALbertIM0427 Date: Sun, 21 Jul 2024 01:24:51 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20BE=EC=84=9C=EB=B2=84=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/be-ci.yml | 33 --------------------------------- .github/workflows/fe-cd.yml | 20 +++++++++++++------- 2 files changed, 13 insertions(+), 40 deletions(-) diff --git a/.github/workflows/be-ci.yml b/.github/workflows/be-ci.yml index cc96d87f0..f790a34d8 100644 --- a/.github/workflows/be-ci.yml +++ b/.github/workflows/be-ci.yml @@ -32,37 +32,4 @@ jobs: chmod +x gradlew ./gradlew build working-directory: ${{ env.ROOT_PATH }} - - name: CoverAlls를 실행한다 - uses: coverallsapp/github-action@v2 - with: - base-path: COVERALLS_PATH - - name: 도커 허브에 로그인한다 - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKER_HUB_USERNAME }} - password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: 어플리케이션의 도커 이미지를 빌드하고 도커 허브에 푸시한다 - uses: docker/build-push-action@v4 - with: - context: . - file: ./Dockerfile.be - push: true - tags: ${{ secrets.BE_DOCKER_IMAGE_NAME }} - - name: 어플리케이션을 배포한다 - env: - PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} - HOST: ${{ secrets.HOST_ADDRESS }} - USER: ${{ secrets.HOST_USERNAME }} - TAG: ${{ secrets.BE_DOCKER_IMAGE_NAME }} - run: | - # Private key를 파일로 생성합니다. - echo "$PRIVATE_KEY" > private_key.pem - chmod 600 private_key.pem - # EC2 인스턴스에 SSH로 접속하여 Docker 컨테이너를 관리합니다. - ssh -o StrictHostKeyChecking=no -i private_key.pem $USER@$HOST " - sudo docker compose -f docker-compose-be-app.yml down -v - sudo docker compose -f docker-compose-be-app.yml pull - sudo docker compose -f docker-compose-be-app.yml up -d - sudo docker image prune -f - " diff --git a/.github/workflows/fe-cd.yml b/.github/workflows/fe-cd.yml index 89b10c59c..493d986ee 100644 --- a/.github/workflows/fe-cd.yml +++ b/.github/workflows/fe-cd.yml @@ -41,14 +41,20 @@ jobs: push: true tags: ${{ secrets.FE_DOCKER_IMAGE_NAME }} - name: 어플리케이션을 배포한다 - uses: appleboy/ssh-action@master - with: - host: ${{ secrets.HOST_ADDRESS }} - username: ${{ secrets.HOST_USERNAME }} - key: ${{ secrets.HOST_KEY }} - port: ${{ secrets.HOST_PORT }} - script: | + env: + PRIVATE_KEY: ${{ secrets.EC2_SSH_PRIVATE_KEY }} + HOST: ${{ secrets.HOST_ADDRESS }} + USER: ${{ secrets.HOST_USERNAME }} + TAG: ${{ secrets.BE_DOCKER_IMAGE_NAME }} + run: | + # Private key를 파일로 생성합니다. + echo "$PRIVATE_KEY" > private_key.pem + chmod 600 private_key.pem + + # EC2 인스턴스에 SSH로 접속하여 Docker 컨테이너를 관리합니다. + ssh -o StrictHostKeyChecking=no -i private_key.pem $USER@$HOST " sudo docker compose -f docker-compose-fe-app.yml down -v sudo docker compose -f docker-compose-fe-app.yml pull sudo docker compose -f docker-compose-fe-app.yml up -d sudo docker image prune -f + "