Skip to content
Merged
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
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,3 +36,6 @@ out/
### VS Code ###
.vscode/
.DS_Store

# Environment variables
.env
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM eclipse-temurin:17-jdk-alpine
FROM eclipse-temurin:17-jdk

WORKDIR /app

Expand Down
1 change: 1 addition & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ dependencies {
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
implementation 'me.paulschwarz:spring-dotenv:4.0.0'
}

tasks.named('test') {
Expand Down
89 changes: 74 additions & 15 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,91 @@
version: '3.8'
version: "3.8"

services:
db:
image: mysql:8.0
container_name: my-mysql
restart: always
container_name: mysql
command: [
"--default-authentication-plugin=mysql_native_password",
"--character-set-server=utf8mb4",
"--collation-server=utf8mb4_unicode_ci"
]
environment:
MYSQL_ROOT_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
MYSQL_DATABASE: mydb
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
ports:
- "3306:3306"
- "3307:3306" # 호스트 3307 -> 컨테이너 3306
volumes:
- db_data:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-p${MYSQL_ROOT_PASSWORD}"]
interval: 5s
timeout: 5s
retries: 20

app:
image: ggamnunq/umc:backend
container_name: spring-app
restart: always
image: yujin1219/umc-backend:dev # Docker Hub 이미지 사용
container_name: umc-app
restart: always # 재시작 정책 추가
depends_on:
- db
db:
condition: service_healthy
env_file:
- .env
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydb
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
AWS_ACCESS_KEY: ${AWS_ACCESS_KEY}
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
SPRING_PROFILES_ACTIVE: dev

# DB 연결
SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/${MYSQL_DATABASE}?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
SPRING_DATASOURCE_USERNAME: ${MYSQL_USER}
SPRING_DATASOURCE_PASSWORD: ${MYSQL_PASSWORD}

# SwaggerConfig에서 사용하는 값
API_SERVER_URL: ${API_SERVER_URL}

# S3 - 빈 주입 실패 막기 위해 더미 값 넣어둠
CLOUD_AWS_CREDENTIALS_ACCESSKEY: ${CLOUD_AWS_CREDENTIALS_ACCESSKEY}
CLOUD_AWS_CREDENTIALS_SECRETKEY: ${CLOUD_AWS_CREDENTIALS_SECRETKEY}
CLOUD_AWS_REGION_STATIC: ${CLOUD_AWS_REGION_STATIC}
CLOUD_AWS_S3_BUCKET: ${CLOUD_AWS_S3_BUCKET}
CLOUD_AWS_S3_PATH_PHOTO: ${CLOUD_AWS_S3_PATH_PHOTO}

ports:
- "8080:8080"

volumes:
db_data:

#version: '3.8'
#
#services:
# db:
# image: mysql:8.0
# container_name: mysql8
# restart: always
# environment:
# MYSQL_ROOT_PASSWORD: UmcServerData1234!
# MYSQL_DATABASE: mydb
# ports:
# - "3307:3306"
# volumes:
# - db_data:/var/lib/mysql
#
# app:
# image: yujin1219/umc:backend
# container_name: spring-app
# restart: always
# depends_on:
# - db
# environment:
# SPRING_DATASOURCE_URL: jdbc:mysql://db:3306/mydb
# SPRING_DATASOURCE_USERNAME: root
# SPRING_DATASOURCE_PASSWORD: UmcServerData1234!
# AWS_ACCESS_KEY: ${AWS_ACCESS_KEY}
# AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
# ports:
# - "8080:8080"
#
#volumes:
# db_data:
3 changes: 2 additions & 1 deletion src/main/java/hsu/umc/server/aws/s3/AmazonS3Manager.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,12 @@ public String uploadFile(String keyName, MultipartFile file)throws IOException {
System.out.println(keyName);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(file.getSize());
metadata.setContentType(file.getContentType()); // Content-Type 설정 추가
amazonS3.putObject(new PutObjectRequest(amazonConfig.getBucket(), keyName, file.getInputStream(), metadata));
return amazonS3.getUrl(amazonConfig.getBucket(),keyName).toString();
}
public void deleteFile(String photoUrl){
String s3Key = photoUrl.replace("https://umc-server.s3.ap-northeast-2.amazonaws.com/", "");
String s3Key = photoUrl.replace("https://hsu-umc-bucket.s3.ap-northeast-2.amazonaws.com/", "");
log.info("삭제할 s3 키 = {}", s3Key);
try {
amazonS3.deleteObject(new DeleteObjectRequest(amazonConfig.getBucket(), s3Key));
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/hsu/umc/server/config/UMCConfiguration.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ public class UMCConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:5173","https://hansung-umc.netlify.app","https://hsuumc.site", "https://www.hsuumc.site")
.allowedOrigins("http://localhost:5173","https://hansung-umc.netlify.app","https://hsuumc.site", "https://www.hsuumc.site", "https://hsu-server.store")
.allowedMethods("GET", "POST", "PATCH", "DELETE", "PUT")
.allowedHeaders("*")
.allowCredentials(true);
Expand Down
39 changes: 14 additions & 25 deletions src/main/resources/application-dev.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,29 @@
spring:
# config:
# import: "classpath:.env" # .env 파일을 로드

datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://db:3306/mydb
username: ${SPRING_DATASOURCE_USERNAME}
password: ${SPRING_DATASOURCE_PASSWORD}
url: jdbc:mysql://localhost:3307/mydb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: umc_user
password: umc_password

jpa:
database-platform: org.hibernate.dialect.MySQL8Dialect
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
show_sql: true

web:
cors:
allowed-origins: "http://localhost:5173"
allowed-methods: GET, POST, PATCH, DELETE, PUT
allowed-headers: "*"
allow-credentials: true

servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB

cloud:
aws:
credentials:
accessKey: ${CLOUD_AWS_CREDENTIALS_ACCESSKEY}
secretKey: ${CLOUD_AWS_CREDENTIALS_SECRETKEY}
region:
static: ${CLOUD_AWS_REGION_STATIC}
s3:
bucket: umc-server
bucket: ${CLOUD_AWS_S3_BUCKET}
path:
photo: photos
region:
static: ap-northeast-2
stack:
auto: false
credentials:
accessKey: ${AWS_ACCESS_KEY}
secretKey: ${AWS_SECRET_ACCESS_KEY}
photo: ${CLOUD_AWS_S3_PATH_PHOTO}
52 changes: 21 additions & 31 deletions src/main/resources/application-local.yml
Original file line number Diff line number Diff line change
@@ -1,39 +1,29 @@
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/pharamQuest?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
# url: jdbc:mysql://pharmdb.c3usgo2iex04.ap-northeast-2.rds.amazonaws.com:3306/pharmquest?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
username: root
password: 53099035
sql:
init:
mode: never
url: jdbc:mysql://localhost:3307/mydb?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Seoul&characterEncoding=UTF-8
username: umc_user
password: umc_password

jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
dialect: org.hibernate.dialect.MySQL8Dialect
show_sql: true
format_sql: true
use_sql_comments: true
hbm2ddl:
auto: update
show_sql: true

servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
web:
cors:
allowed-origins: "http://localhost:5173"

#cloud:
# aws:
# s3:
# bucket: umc-7th
# path:
# photo : photos
# region:
# static: ap-northeast-2
# stack:
# auto: false
# cron: "0 * * * * *"
# credentials:
# accessKey: ${aws.access.key.id}
# secretKey: ${aws.secret.access.key}
cloud:
aws:
credentials:
accessKey: ${CLOUD_AWS_CREDENTIALS_ACCESSKEY}
secretKey: ${CLOUD_AWS_CREDENTIALS_SECRETKEY}
region:
static: ap-northeast-2
s3:
bucket: ${CLOUD_AWS_S3_BUCKET}
path:
photo: ${CLOUD_AWS_S3_PATH_PHOTO}
6 changes: 3 additions & 3 deletions src/main/resources/application.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
spring:
profiles:
active: dev
# active: ${spring.profiles.active}
# active: local
active: ${spring.profiles.active}

api:
server:
url: https://umc.hsuumc.site
url: https://hsu-server.store
Loading