diff --git a/.github/workflows/cd-pipeline.yml b/.github/workflows/cd-pipeline.yml index 3ca5dfb..440daab 100644 --- a/.github/workflows/cd-pipeline.yml +++ b/.github/workflows/cd-pipeline.yml @@ -3,6 +3,9 @@ name: Java CD with Gradle on: push: branches: [ "main" ] + pull_request: + branches: + - "develop" permissions: contents: read @@ -23,16 +26,12 @@ jobs: - name: application.yml 생성 run: | cd ./src/main/resources - touch ./application.yml echo "${{ secrets.PROPERTIES }}" > ./application.yml shell: bash - - name: 빌드 권한 부여 - run: chmod +x gradlew - - - name: 프로젝트 jar 파일 제작 + - name: 빌드 권한 부여 및 프로젝트 jar 제작 run: | - chmod +x gradlew + chmod +x gradlew ./gradlew bootJar - name: 웹 이미지 빌드 및 도커허브에 push @@ -41,6 +40,24 @@ jobs: docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} . docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} + - name: EC2에 google-credentials.json 복원 + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + script: | + echo "${{ secrets.GOOGLE_CREDS_BASE64 }}" | base64 -d > /home/ubuntu/google-credentials.json + + - name: docker-compose.yml 복사 + uses: appleboy/scp-action@master + with: + host: ${{ secrets.HOST }} + username: ubuntu + key: ${{ secrets.KEY }} + source: "docker-compose.yml" + target: "~/app" + - name: Docker 컨테이너 배포 및 업데이트 uses: appleboy/ssh-action@master with: @@ -48,10 +65,9 @@ jobs: username: ubuntu key: ${{ secrets.KEY }} script: | - sudo docker-compose down - sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} - sudo docker-compose up -d --force-recreate --no-deps - sudo docker exec -it backend bash -c "export GOOGLE_APPLICATION_CREDENTIALS='/home/ubuntu/google-credentials.json'" - sudo docker exec backend ls -al /app/google-credentials.json - sudo docker exec backend cat /app/google-credentials.json - sudo docker image prune -f + mkdir -p ~/app + cd ~/app + sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} + sudo docker-compose down + sudo docker-compose up -d --force-recreate --no-deps + sudo docker image prune -f diff --git a/README.md b/README.md index 5e97794..7a67319 100644 --- a/README.md +++ b/README.md @@ -1 +1,49 @@ -# Backend \ No newline at end of file +# 🍒 Cheric + +## **Table of Contents** + +- [개요](#개요) +- [Skills](#skills) +- [ERD](#erd) +- [Technology Stack](#technology-stack) +- [발표자료](#발표자료) + + +## 개요 + +Cheric 는 아트 컬렉터들이 컬렉팅한 작품을 컬렉션에 저장하여 온라인 컬렉션 전시를 할 수 있도록 하는 서비스입니다. 컬렉터들이 다양한 수단을 활용해 자신을 세심하게 표현할 수 있도록 도와주고 있습니다. + +## Skills + +언어 및 프레임워크: `Java 17`, `Spring Boot 3.x.x` + +데이터베이스: `MySQL` + +배포: `AWS EC2`, `Github Actions`, `Docker` + +ETC: `Swagger`, `Lombok`, `Junit`, `Google-Vision-api`, `Chat-Gpt-4.0-api`, `WebClient` + + +## ERD + +![image](https://github.com/user-attachments/assets/ffc2e71b-8b04-473f-b8b7-d974bf57ea47) + +## Technology Stack + +![image](https://github.com/user-attachments/assets/711eef96-b30f-4a0a-b9b9-974569c0ce5e) + +## 발표자료 + +![0](https://github.com/user-attachments/assets/ee48cd4e-cfe9-4475-b5fd-b7bcfadb74a2) +![1](https://github.com/user-attachments/assets/56a9f9ec-8be0-4e65-9fab-3d40466a98a1) +![2](https://github.com/user-attachments/assets/0380e5ec-5524-4c21-80a8-4dfcefa541ce) +![3](https://github.com/user-attachments/assets/73f00664-b734-472a-a7fe-a7b404944608) +![4](https://github.com/user-attachments/assets/854b0618-7538-4b1c-be16-0e2f22c5fc4d) +![5](https://github.com/user-attachments/assets/ad0a1a10-7b93-4745-83af-1aeb51e39677) +![6](https://github.com/user-attachments/assets/06dcc63e-06cd-496d-a82a-679ce317341f) +![7](https://github.com/user-attachments/assets/539fdb59-cc67-4ea9-93d7-963c47987864) +![8](https://github.com/user-attachments/assets/c5095972-3974-478c-b00b-cf4d0d342ef8) +![9](https://github.com/user-attachments/assets/0f363319-4a72-45c3-86eb-3a49b379a004) +![10](https://github.com/user-attachments/assets/8d065778-206f-4479-9aec-c24f8f0ddbc4) +![11](https://github.com/user-attachments/assets/2876860b-f504-403b-8994-ed3be67cbb26) +![12](https://github.com/user-attachments/assets/1725f601-25f4-4edd-af31-aefe3bc711c0) diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b7be394 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,32 @@ +version: "3.8" + +services: + backend: + container_name: backend + image: yerim01/cheric + expose: + - 8080 + ports: + - 8080:8080 + restart: always + depends_on: + - redis + volumes: + - /home/ubuntu/google-credentials.json:/app/google-credentials.json + environment: + - GOOGLE_APPLICATION_CREDENTIALS=/app/google-credentials.json + networks: + - testnet + + redis: + container_name: redis + image: redis + ports: + - "6379:6379" + restart: always + networks: + - testnet + +networks: + testnet: + driver: bridge \ No newline at end of file