Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 29 additions & 13 deletions .github/workflows/cd-pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ name: Java CD with Gradle
on:
push:
branches: [ "main" ]
pull_request:
branches:
- "develop"

permissions:
contents: read
Expand All @@ -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
Expand All @@ -41,17 +40,34 @@ 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:
host: ${{ secrets.HOST }}
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
50 changes: 49 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,49 @@
# Backend
# 🍒 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)
32 changes: 32 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -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