From f17ff707d0c9fb9614ab17a7a756a7d2a3efd060 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 14:25:49 +0900 Subject: [PATCH 01/22] :add Dockerfile and Github action file --- .github/workflows/docker.yml | 125 +++++++++++++++++++++++++++++++++++ Dockerfile | 4 ++ 2 files changed, 129 insertions(+) create mode 100644 .github/workflows/docker.yml create mode 100644 Dockerfile diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml new file mode 100644 index 0000000..730a6be --- /dev/null +++ b/.github/workflows/docker.yml @@ -0,0 +1,125 @@ +name: main Workflow + +on: + push: + branches: + - ci/#80 +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 + + - name: Run chmod to make gradlew executable + run: chmod +x ./gradlew + + - name: Build with Gradle + run: ./gradlew clean build --exclude-task test + + ## 웹 이미지 빌드 및 도커허브에 push + - name: web docker build and push + run: | + docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} + docker build -t ${{ secrets.DOCKER_REPO }}/mappin-server . + docker push ${{ secrets.DOCKER_REPO }}/mappin-server + + docker build -t ${{ secrets.DOCKER_REPO }}/mappin-nginx -f dockerfile-nginx . + docker push ${{ secrets.DOCKER_REPO }}/mappin-nginx + + - name: Install Docker on EC2 + uses: appleboy/ssh-action@v0.1.6 + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + if ! apt list --upgradable 2>/dev/null | grep -q "upgradable"; then + sudo apt update -y + fi + if ! command -v docker &> /dev/null; then + sudo apt install -y docker.io + sudo systemctl start docker + sudo systemctl enable docker + sudo usermod -aG docker ubuntu + else + echo "Docker is already installed" + fi + if ! command -v docker-compose &> /dev/null; then + sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose + sudo chmod +x /usr/local/bin/docker-compose + fi + + - name: EC2 docker remove + uses: appleboy/ssh-action@v0.1.6 + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + if [ "$(sudo docker ps -aq)" ]; then + sudo docker stop $(sudo docker ps -aq) + sudo docker rm -f $(sudo docker ps -aq) + fi + if [ "$(sudo docker images -aq)" ]; then + sudo docker rmi -f $(sudo docker images -aq) + fi + + - name: Copy file to EC2 + uses: appleboy/scp-action@master + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + source: ./docker-compose.yaml + target: /home/ubuntu/ + + - name: Create and Copy .env File to EC2 + uses: appleboy/ssh-action@v0.1.6 + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + # Create .env file + echo "DB_URL=${{ secrets.DB_URL }}" > ~/.env + echo "DB_USERNAME=${{ secrets.DB_USERNAME }}" >> ~/.env + echo "DB_PASS=${{ secrets.DB_PASS }}" >> ~/.env + echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> ~/.env + echo "KAKAO_CLIENT=${{ secrets.KAKAO_CLIENT }}" >> ~/.env + echo "KAKAO_SECRET=${{ secrets.KAKAO_SECRET }}" >> ~/.env + echo "KAKAO_REST_API_KEY=${{ secrets.KAKAO_REST_API_KEY }}" >> ~/.env + echo "S3ACCESSKEY=${{ secrets.S3ACCESSKEY }}" >> ~/.env + echo "S3SECRETKEY=${{ secrets.S3SECRETKEY }}" >> ~/.env + + # Copy .env file to the project directory + #cp ~/.env /home/ubuntu/.env + + + + ## docker compose up + - name: Docker Compose on EC2 + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + # Docker 이미지 다운로드 + sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-server + sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-nginx + + # Docker Compose 실행 + sudo docker-compose up -d + sudo docker-compose logs -f + + # 사용하지 않는 Docker 이미지 정리 + sudo docker image prune -f \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..82887d0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,4 @@ +FROM openjdk:17-alphine +ARG JAR_FILE=build/libs/*.jar +COPY ${JAR_FILE} app.jar +ENTRYPOINT ["java","-jar","/app.jar"] \ No newline at end of file From 2b569cee38d4239f8941c378a420d4ac14cecf8a Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:00:36 +0900 Subject: [PATCH 02/22] Add: Dockerfile and gradlew --- Dockerfile | 2 +- gradlew | 0 2 files changed, 1 insertion(+), 1 deletion(-) mode change 100644 => 100755 gradlew diff --git a/Dockerfile b/Dockerfile index 82887d0..189b146 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM openjdk:17-alphine +FROM openjdk:17-alpine ARG JAR_FILE=build/libs/*.jar COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"] \ No newline at end of file diff --git a/gradlew b/gradlew old mode 100644 new mode 100755 From 2f2aa8ac24bf65d1b6669283d776cb5cfa922ddd Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:00:46 +0900 Subject: [PATCH 03/22] feat: test deleted --- src/test/java/umc/meme/shop/ArtistTest.java | 146 +++++++++--------- .../umc/meme/shop/ShopApplicationTests.java | 26 ++-- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/src/test/java/umc/meme/shop/ArtistTest.java b/src/test/java/umc/meme/shop/ArtistTest.java index de97672..fcce1f1 100644 --- a/src/test/java/umc/meme/shop/ArtistTest.java +++ b/src/test/java/umc/meme/shop/ArtistTest.java @@ -1,73 +1,73 @@ -package umc.meme.shop; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import umc.meme.shop.domain.artist.entity.Artist; -import umc.meme.shop.domain.artist.entity.enums.*; -import umc.meme.shop.domain.artist.repository.ArtistRepository; -import umc.meme.shop.domain.portfolio.entity.enums.Category; -import umc.meme.shop.global.enums.DayOfWeek; - -import java.util.List; - -@SpringBootTest -public class ArtistTest { - - private ArtistRepository artistRepository; - - @Test - void createArtist(){ - - List categories = List.of(new String[]{Category.DAILY.getValue(), Category.PARTY.getValue()}); - List regions = List.of(new String[]{Region.DONGJAK.getValue(), Region.GANGNAM.getValue()}); - Artist artist1 = Artist.builder() - .availableDayOfWeek(DayOfWeek.FRI) - .gender(Gender.FEMALE) - .specialization(categories) - .email("") - .name("testName") - .nickname("testNickName") - .makeupLocation(MakeupLocation.SHOP) - .region(regions) - .introduction("Artist1") - .profileImg("") - .workExperience(WorkExperience.EIGHT) - .build(); - artistRepository.save(artist1); - - List categories2 = List.of(new Category[]{Category.STUDIO, Category.ACTOR}); - List regions2 = List.of(new Region[]{Region.GURO, Region.GANGNAM}); - Artist artist2 = Artist.builder() - .availableDayOfWeek(DayOfWeek.THU) - .gender(Gender.FEMALE) - .profileImg("") - .specialization(categories) - .email("") - .name("test2Name") - .nickname("test2NickName") - .makeupLocation(MakeupLocation.SHOP) - .region(regions) - .introduction("Artist2") - .workExperience(WorkExperience.FIVE) - .build(); - artistRepository.save(artist2); - - List categorie3 = List.of(new Category[]{Category.WEDDING, Category.PROSTHETIC}); - List regions3 = List.of(new Region[]{Region.DONGDAEMUN, Region.SONGPA}); - Artist artist3 = Artist.builder() - .profileImg("") - .availableDayOfWeek(DayOfWeek.MON) - .gender(Gender.FEMALE) - .specialization(categories) - .email("") - .name("test3Name") - .nickname("test3NickName") - .makeupLocation(MakeupLocation.SHOP) - .region(regions) - .introduction("Artist3") - .workExperience(WorkExperience.ONE) - .build(); - artistRepository.save(artist3); - - } -} +//package umc.meme.shop; +// +//import org.junit.jupiter.api.Test; +//import org.springframework.boot.test.context.SpringBootTest; +//import umc.meme.shop.domain.artist.entity.Artist; +//import umc.meme.shop.domain.artist.entity.enums.*; +//import umc.meme.shop.domain.artist.repository.ArtistRepository; +//import umc.meme.shop.domain.portfolio.entity.enums.Category; +//import umc.meme.shop.global.enums.DayOfWeek; +// +//import java.util.List; +// +//@SpringBootTest +//public class ArtistTest { +// +// private ArtistRepository artistRepository; +// +// @Test +// void createArtist(){ +// +// List categories = List.of(new String[]{Category.DAILY.getValue(), Category.PARTY.getValue()}); +// List regions = List.of(new String[]{Region.DONGJAK.getValue(), Region.GANGNAM.getValue()}); +// Artist artist1 = Artist.builder() +//// .availableDayOfWeek(DayOfWeek.FRI) +// .gender(Gender.FEMALE) +// .specialization(categories) +// .email("") +// .name("testName") +// .nickname("testNickName") +// .makeupLocation(MakeupLocation.SHOP) +// .region(regions) +// .introduction("Artist1") +// .profileImg("") +// .workExperience(WorkExperience.EIGHT) +// .build(); +// artistRepository.save(artist1); +// +// List categories2 = List.of(new Category[]{Category.STUDIO, Category.ACTOR}); +// List regions2 = List.of(new Region[]{Region.GURO, Region.GANGNAM}); +// Artist artist2 = Artist.builder() +//// .availableDayOfWeek(DayOfWeek.THU) +// .gender(Gender.FEMALE) +// .profileImg("") +// .specialization(categories) +// .email("") +// .name("test2Name") +// .nickname("test2NickName") +// .makeupLocation(MakeupLocation.SHOP) +// .region(regions) +// .introduction("Artist2") +// .workExperience(WorkExperience.FIVE) +// .build(); +// artistRepository.save(artist2); +// +// List categorie3 = List.of(new Category[]{Category.WEDDING, Category.PROSTHETIC}); +// List regions3 = List.of(new Region[]{Region.DONGDAEMUN, Region.SONGPA}); +// Artist artist3 = Artist.builder() +// .profileImg("") +//// .availableDayOfWeek(DayOfWeek.MON) +// .gender(Gender.FEMALE) +// .specialization(categories) +// .email("") +// .name("test3Name") +// .nickname("test3NickName") +// .makeupLocation(MakeupLocation.SHOP) +// .region(regions) +// .introduction("Artist3") +// .workExperience(WorkExperience.ONE) +// .build(); +// artistRepository.save(artist3); +// +// } +//} diff --git a/src/test/java/umc/meme/shop/ShopApplicationTests.java b/src/test/java/umc/meme/shop/ShopApplicationTests.java index b6f0a77..59b7189 100644 --- a/src/test/java/umc/meme/shop/ShopApplicationTests.java +++ b/src/test/java/umc/meme/shop/ShopApplicationTests.java @@ -1,13 +1,13 @@ -package umc.meme.shop; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class ShopApplicationTests { - - @Test - void contextLoads() { - } - -} +//package umc.meme.shop; +// +//import org.junit.jupiter.api.Test; +//import org.springframework.boot.test.context.SpringBootTest; +// +//@SpringBootTest +//class ShopApplicationTests { +// +// @Test +// void contextLoads() { +// } +// +//} From b9c8307aa5133d69f05a57d7a9b68648757e2f72 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:01:11 +0900 Subject: [PATCH 04/22] feat: ReviewImgDto edited --- .../umc/meme/shop/domain/artist/entity/Artist.java | 2 +- .../review/dto/response/ReviewResponseDto.java | 13 ++++++------- .../shop/domain/review/service/ReviewService.java | 1 - 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/umc/meme/shop/domain/artist/entity/Artist.java b/src/main/java/umc/meme/shop/domain/artist/entity/Artist.java index dadc365..5d7b759 100644 --- a/src/main/java/umc/meme/shop/domain/artist/entity/Artist.java +++ b/src/main/java/umc/meme/shop/domain/artist/entity/Artist.java @@ -45,7 +45,7 @@ public class Artist { private String profileImg; @Column(nullable = false, length = 500) - private String introduction = "안녕하세요! 저는 ___입니다!"; + private String introduction; @Enumerated(EnumType.STRING) @Column(nullable = false) diff --git a/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java b/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java index 02824df..218eb96 100644 --- a/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java +++ b/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java @@ -16,20 +16,19 @@ public class ReviewResponseDto { private String modelName; private int star; private String comment; - private List reviewImgDtoList; +// private List reviewImgDtoList; public static ReviewResponseDto from(Review review){ - - List reviewImgDtoList = review.getReviewImgList() - .stream() - .map(reviewImg -> new ReviewImgDto(reviewImg.getReviewImgId(), reviewImg.getSrc(), false)) - .toList(); +// List reviewImgDtoList = review.getReviewImgList() +// .stream() +// .map(reviewImg -> new ReviewImgDto(reviewImg.getReviewImgId(), reviewImg.getSrc(), false)) +// .toList(); return ReviewResponseDto.builder() .modelName(review.getModel().getName()) .star(review.getStar()) .comment(review.getComment()) - .reviewImgDtoList(reviewImgDtoList) +// .reviewImgDtoList(reviewImgDtoList) .build(); } } diff --git a/src/main/java/umc/meme/shop/domain/review/service/ReviewService.java b/src/main/java/umc/meme/shop/domain/review/service/ReviewService.java index 382aebe..aab9589 100644 --- a/src/main/java/umc/meme/shop/domain/review/service/ReviewService.java +++ b/src/main/java/umc/meme/shop/domain/review/service/ReviewService.java @@ -12,7 +12,6 @@ import umc.meme.shop.domain.reservation.repository.ReservationRepository; import umc.meme.shop.domain.review.dto.request.DeleteReviewDto; import umc.meme.shop.domain.review.dto.request.ReviewDto; -import umc.meme.shop.domain.review.dto.response.ReviewImgDto; import umc.meme.shop.domain.review.dto.response.ReviewListResponseDto; import umc.meme.shop.domain.review.dto.response.ReviewResponseDto; import umc.meme.shop.domain.review.entity.Review; From 291853f1c141e9d4f0fe1607a8d1ae5346a77841 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:01:26 +0900 Subject: [PATCH 05/22] build: docker.yml edited --- .github/workflows/docker.yml | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 730a6be..862a99b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -10,11 +10,11 @@ jobs: steps: - uses: actions/checkout@v3 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v3 with: - java-version: '11' - distribution: 'temurin' + java-version: '17' + distribution: 'adopt' - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 @@ -29,11 +29,8 @@ jobs: - name: web docker build and push run: | docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }} - docker build -t ${{ secrets.DOCKER_REPO }}/mappin-server . - docker push ${{ secrets.DOCKER_REPO }}/mappin-server - - docker build -t ${{ secrets.DOCKER_REPO }}/mappin-nginx -f dockerfile-nginx . - docker push ${{ secrets.DOCKER_REPO }}/mappin-nginx + docker build -t ${{ secrets.DOCKER_REPO }}/meme-service . + docker push ${{ secrets.DOCKER_REPO }}/meme-service - name: Install Docker on EC2 uses: appleboy/ssh-action@v0.1.6 @@ -92,13 +89,7 @@ jobs: # Create .env file echo "DB_URL=${{ secrets.DB_URL }}" > ~/.env echo "DB_USERNAME=${{ secrets.DB_USERNAME }}" >> ~/.env - echo "DB_PASS=${{ secrets.DB_PASS }}" >> ~/.env - echo "JWT_SECRET=${{ secrets.JWT_SECRET }}" >> ~/.env - echo "KAKAO_CLIENT=${{ secrets.KAKAO_CLIENT }}" >> ~/.env - echo "KAKAO_SECRET=${{ secrets.KAKAO_SECRET }}" >> ~/.env - echo "KAKAO_REST_API_KEY=${{ secrets.KAKAO_REST_API_KEY }}" >> ~/.env - echo "S3ACCESSKEY=${{ secrets.S3ACCESSKEY }}" >> ~/.env - echo "S3SECRETKEY=${{ secrets.S3SECRETKEY }}" >> ~/.env + echo "DB_PASS=${{ secrets.DB_PASS }}" >> ~/.env # Copy .env file to the project directory #cp ~/.env /home/ubuntu/.env From ba414ef3b1d0581bddc7184c04a261ba142ff464 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:02:56 +0900 Subject: [PATCH 06/22] add: docker-compose.yaml --- docker-compose.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docker-compose.yaml diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..5baa8a3 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,13 @@ +version: '3' +services: + web: + container_name: service + image: sunwupark/meme-service + expose: + - 8080 + ports: + - "8080:8080" + environment: + - DB_URL=${DB_URL} + - DB_USERNAME=${DB_USERNAME} + - DB_PASS=${DB_PASS} From 9205e1b01e2eda2e05d0f979d419757b1b749ac3 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:18:29 +0900 Subject: [PATCH 07/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 862a99b..738efed 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -36,7 +36,7 @@ jobs: uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.HOST }} - username: ubuntu + username: ec2-user key: ${{ secrets.KEY }} script: | if ! apt list --upgradable 2>/dev/null | grep -q "upgradable"; then From 9eed22288287afbdd9128b5155b9de0078b47eba Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:26:18 +0900 Subject: [PATCH 08/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 738efed..e408140 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -59,7 +59,7 @@ jobs: uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.HOST }} - username: ubuntu + username: ec2-user key: ${{ secrets.KEY }} script: | if [ "$(sudo docker ps -aq)" ]; then @@ -74,7 +74,7 @@ jobs: uses: appleboy/scp-action@master with: host: ${{ secrets.HOST }} - username: ubuntu + username: ec2-user key: ${{ secrets.KEY }} source: ./docker-compose.yaml target: /home/ubuntu/ @@ -83,7 +83,7 @@ jobs: uses: appleboy/ssh-action@v0.1.6 with: host: ${{ secrets.HOST }} - username: ubuntu + username: ec2-user key: ${{ secrets.KEY }} script: | # Create .env file @@ -94,19 +94,17 @@ jobs: # Copy .env file to the project directory #cp ~/.env /home/ubuntu/.env - - ## docker compose up - name: Docker Compose on EC2 uses: appleboy/ssh-action@master with: host: ${{ secrets.HOST }} - username: ubuntu + username: ec2-user key: ${{ secrets.KEY }} script: | # Docker 이미지 다운로드 - sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-server - sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-nginx + sudo docker pull ${{ secrets.DOCKER_REPO }}/meme-service +# sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-nginx # Docker Compose 실행 sudo docker-compose up -d From 034cc425ed5c86470807e52877588726711f98f0 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:27:14 +0900 Subject: [PATCH 09/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e408140..37a9080 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -104,7 +104,6 @@ jobs: script: | # Docker 이미지 다운로드 sudo docker pull ${{ secrets.DOCKER_REPO }}/meme-service -# sudo docker pull ${{ secrets.DOCKER_REPO }}/mappin-nginx # Docker Compose 실행 sudo docker-compose up -d From f448be670cce7b1051bba639ab267fec7feed64e Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:32:54 +0900 Subject: [PATCH 10/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 37a9080..c3d172a 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -77,7 +77,7 @@ jobs: username: ec2-user key: ${{ secrets.KEY }} source: ./docker-compose.yaml - target: /home/ubuntu/ + target: /home/ec2-user/ - name: Create and Copy .env File to EC2 uses: appleboy/ssh-action@v0.1.6 @@ -92,7 +92,7 @@ jobs: echo "DB_PASS=${{ secrets.DB_PASS }}" >> ~/.env # Copy .env file to the project directory - #cp ~/.env /home/ubuntu/.env + #cp ~/.env /home/ec2-user/.env ## docker compose up - name: Docker Compose on EC2 From 360a4f3a2fb74f440dd93e7457befe3de2557f5e Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:46:17 +0900 Subject: [PATCH 11/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c3d172a..382a049 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -32,29 +32,6 @@ jobs: docker build -t ${{ secrets.DOCKER_REPO }}/meme-service . docker push ${{ secrets.DOCKER_REPO }}/meme-service - - name: Install Docker on EC2 - uses: appleboy/ssh-action@v0.1.6 - with: - host: ${{ secrets.HOST }} - username: ec2-user - key: ${{ secrets.KEY }} - script: | - if ! apt list --upgradable 2>/dev/null | grep -q "upgradable"; then - sudo apt update -y - fi - if ! command -v docker &> /dev/null; then - sudo apt install -y docker.io - sudo systemctl start docker - sudo systemctl enable docker - sudo usermod -aG docker ubuntu - else - echo "Docker is already installed" - fi - if ! command -v docker-compose &> /dev/null; then - sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose - sudo chmod +x /usr/local/bin/docker-compose - fi - - name: EC2 docker remove uses: appleboy/ssh-action@v0.1.6 with: From 8210e027919e6ec0aa521ff9a4fc239e8b78c39a Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:50:52 +0900 Subject: [PATCH 12/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 382a049..58e828c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,6 +22,14 @@ jobs: - name: Run chmod to make gradlew executable run: chmod +x ./gradlew + - name: Set .yml for main + run: | + # main 설정 파일 디렉토리로 이동 + cd ./src/main/resources + touch ./application-database.yaml + echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application-database.yml + shell: bash + - name: Build with Gradle run: ./gradlew clean build --exclude-task test From a4e4c6a87926ebf8fe1d58defad1ef7968c54021 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 22:54:48 +0900 Subject: [PATCH 13/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 58e828c..80e34ce 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -24,10 +24,11 @@ jobs: - name: Set .yml for main run: | - # main 설정 파일 디렉토리로 이동 - cd ./src/main/resources - touch ./application-database.yaml - echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application-database.yml + # Create resources directory if it doesn't exist + mkdir -p ./src/main/resources + cd ./src/main/resources + touch ./application-database.yaml + echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application-database.yml shell: bash - name: Build with Gradle From 1092ed43aea8e4cdf963ba71439cc0c8983a5958 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:46:29 +0900 Subject: [PATCH 14/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 80e34ce..581ccb9 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -25,10 +25,10 @@ jobs: - name: Set .yml for main run: | # Create resources directory if it doesn't exist - mkdir -p ./src/main/resources + mkdir ./src/main/resources cd ./src/main/resources - touch ./application-database.yaml - echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application-database.yml + touch ./application.yml + echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application.yml shell: bash - name: Build with Gradle From d1130a02847ff2c98aa18dfad965a97e86c816a3 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Wed, 31 Jan 2024 23:50:31 +0900 Subject: [PATCH 15/22] fix: docker-compose.yaml --- .github/workflows/docker.yml | 6 +++--- .../java/umc/meme/shop/ShopApplication.java | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 581ccb9..a95ed9b 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -19,9 +19,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - - name: Run chmod to make gradlew executable - run: chmod +x ./gradlew - - name: Set .yml for main run: | # Create resources directory if it doesn't exist @@ -31,6 +28,9 @@ jobs: echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application.yml shell: bash + - name: Run chmod to make gradlew executable + run: chmod +x ./gradlew + - name: Build with Gradle run: ./gradlew clean build --exclude-task test diff --git a/src/main/java/umc/meme/shop/ShopApplication.java b/src/main/java/umc/meme/shop/ShopApplication.java index e4d47bc..fe1392c 100644 --- a/src/main/java/umc/meme/shop/ShopApplication.java +++ b/src/main/java/umc/meme/shop/ShopApplication.java @@ -3,12 +3,29 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.core.io.Resource; +import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +import org.springframework.core.io.support.ResourcePatternResolver; + +import java.io.IOException; + @SpringBootApplication @EnableJpaAuditing public class ShopApplication { - public static void main(String[] args) { + public static void main(String[] args) throws IOException { + ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); + + // Resolve the resource for the current file + Resource resource = resolver.getResource("classpath:"); + + // Get the absolute path of the current file + String absolutePath = resource.getFile().getAbsolutePath(); + + // Print the absolute path + System.out.println("Absolute path to the current file: " + absolutePath); + SpringApplication.run(ShopApplication.class, args); } From abc0c02cadbe3ccca58ed9e82906ec436cb3e45d Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Thu, 1 Feb 2024 01:02:35 +0900 Subject: [PATCH 16/22] fix: docker.yaml --- .github/workflows/docker.yml | 2 +- .../java/umc/meme/shop/ShopApplication.java | 20 +------------------ 2 files changed, 2 insertions(+), 20 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a95ed9b..c6c92bb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -22,7 +22,7 @@ jobs: - name: Set .yml for main run: | # Create resources directory if it doesn't exist - mkdir ./src/main/resources + mkdir -p ./src/main/resources cd ./src/main/resources touch ./application.yml echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application.yml diff --git a/src/main/java/umc/meme/shop/ShopApplication.java b/src/main/java/umc/meme/shop/ShopApplication.java index fe1392c..4c53bf3 100644 --- a/src/main/java/umc/meme/shop/ShopApplication.java +++ b/src/main/java/umc/meme/shop/ShopApplication.java @@ -3,30 +3,12 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; -import org.springframework.core.io.Resource; -import org.springframework.core.io.support.PathMatchingResourcePatternResolver; -import org.springframework.core.io.support.ResourcePatternResolver; - -import java.io.IOException; @SpringBootApplication @EnableJpaAuditing public class ShopApplication { - public static void main(String[] args) throws IOException { - ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); - - // Resolve the resource for the current file - Resource resource = resolver.getResource("classpath:"); - - // Get the absolute path of the current file - String absolutePath = resource.getFile().getAbsolutePath(); - - // Print the absolute path - System.out.println("Absolute path to the current file: " + absolutePath); - - SpringApplication.run(ShopApplication.class, args); - } + public static void main(String[] args) { SpringApplication.run(ShopApplication.class, args); } } From ca27e92063ae1ad9c38ca6ae64f50b7362786ffc Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Thu, 1 Feb 2024 01:05:50 +0900 Subject: [PATCH 17/22] fix: docker.yaml --- .github/workflows/docker.yml | 2 -- .gitignore | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index c6c92bb..b1f14b0 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -21,8 +21,6 @@ jobs: - name: Set .yml for main run: | - # Create resources directory if it doesn't exist - mkdir -p ./src/main/resources cd ./src/main/resources touch ./application.yml echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application.yml diff --git a/.gitignore b/.gitignore index fd5c9d8..6c394cd 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ -src/main/resources/ +src/main/resources/application.yml ### STS ### .apt_generated From 35fccf097d7b9032bdfeb868a927a594bb591a9d Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Thu, 1 Feb 2024 01:12:03 +0900 Subject: [PATCH 18/22] fix: docker.yaml --- .github/workflows/docker.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index b1f14b0..8062747 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -16,15 +16,13 @@ jobs: java-version: '17' distribution: 'adopt' - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 - - name: Set .yml for main run: | - cd ./src/main/resources - touch ./application.yml - echo "${{ secrets.MAIN_DATABASE_YML }}" >> ./application.yml - shell: bash + mkdir -p src/main/resources + echo "${{ secrets.MAIN_DATABASE_YML }}" | base64 --decode > src/main/resources/application.yml + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v1 - name: Run chmod to make gradlew executable run: chmod +x ./gradlew From 1b5e7002d0972c9c68c1b8904dad8f9b56167935 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Fri, 2 Feb 2024 23:29:46 +0900 Subject: [PATCH 19/22] fix: docker.yml --- .github/workflows/docker.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 8062747..4af70f3 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -3,7 +3,7 @@ name: main Workflow on: push: branches: - - ci/#80 + - develop jobs: build: runs-on: ubuntu-latest From 31f9936423c84ed7e710f04496fc931ac74fde16 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Fri, 2 Feb 2024 23:31:37 +0900 Subject: [PATCH 20/22] fix: gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6c394cd..fd5c9d8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ build/ !gradle/wrapper/gradle-wrapper.jar !**/src/main/**/build/ !**/src/test/**/build/ -src/main/resources/application.yml +src/main/resources/ ### STS ### .apt_generated From 9c041183c79073df302f3226ae35d4a9c501c2fd Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Fri, 2 Feb 2024 23:34:26 +0900 Subject: [PATCH 21/22] fix: ReviewResponseDto --- .../java/umc/meme/shop/ShopApplication.java | 5 ++-- .../dto/response/ReviewResponseDto.java | 12 ++++----- .../umc/meme/shop/ShopApplicationTests.java | 26 +++++++++---------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/main/java/umc/meme/shop/ShopApplication.java b/src/main/java/umc/meme/shop/ShopApplication.java index 4c53bf3..e4d47bc 100644 --- a/src/main/java/umc/meme/shop/ShopApplication.java +++ b/src/main/java/umc/meme/shop/ShopApplication.java @@ -4,11 +4,12 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.data.jpa.repository.config.EnableJpaAuditing; - @SpringBootApplication @EnableJpaAuditing public class ShopApplication { - public static void main(String[] args) { SpringApplication.run(ShopApplication.class, args); } + public static void main(String[] args) { + SpringApplication.run(ShopApplication.class, args); + } } diff --git a/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java b/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java index 218eb96..3d4337e 100644 --- a/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java +++ b/src/main/java/umc/meme/shop/domain/review/dto/response/ReviewResponseDto.java @@ -16,19 +16,19 @@ public class ReviewResponseDto { private String modelName; private int star; private String comment; -// private List reviewImgDtoList; + private List reviewImgDtoList; public static ReviewResponseDto from(Review review){ -// List reviewImgDtoList = review.getReviewImgList() -// .stream() -// .map(reviewImg -> new ReviewImgDto(reviewImg.getReviewImgId(), reviewImg.getSrc(), false)) -// .toList(); + List reviewImgDtoList = review.getReviewImgList() + .stream() + .map(reviewImg -> new ReviewImgDto(reviewImg.getReviewImgId(), reviewImg.getSrc(), false)) + .toList(); return ReviewResponseDto.builder() .modelName(review.getModel().getName()) .star(review.getStar()) .comment(review.getComment()) -// .reviewImgDtoList(reviewImgDtoList) + .reviewImgDtoList(reviewImgDtoList) .build(); } } diff --git a/src/test/java/umc/meme/shop/ShopApplicationTests.java b/src/test/java/umc/meme/shop/ShopApplicationTests.java index 59b7189..b6f0a77 100644 --- a/src/test/java/umc/meme/shop/ShopApplicationTests.java +++ b/src/test/java/umc/meme/shop/ShopApplicationTests.java @@ -1,13 +1,13 @@ -//package umc.meme.shop; -// -//import org.junit.jupiter.api.Test; -//import org.springframework.boot.test.context.SpringBootTest; -// -//@SpringBootTest -//class ShopApplicationTests { -// -// @Test -// void contextLoads() { -// } -// -//} +package umc.meme.shop; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ShopApplicationTests { + + @Test + void contextLoads() { + } + +} From d462900ddb50670a372a21c58ce56613e0502bb2 Mon Sep 17 00:00:00 2001 From: Sunwu Park <52268188+sunwupark@users.noreply.github.com> Date: Fri, 2 Feb 2024 23:35:48 +0900 Subject: [PATCH 22/22] fix: docker-compose.yaml --- docker-compose.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 5baa8a3..68df57a 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -7,7 +7,12 @@ services: - 8080 ports: - "8080:8080" - environment: - - DB_URL=${DB_URL} - - DB_USERNAME=${DB_USERNAME} - - DB_PASS=${DB_PASS} + + auth: + container_name: auth + image: sunwupark/meme-auth + expose: + - 8081 + ports: + - "8081:8081" + depends_on: web