Skip to content

Commit ed0b690

Browse files
committed
feat: docker 파일 추가
1 parent a0b14e5 commit ed0b690

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
HELP.md
2+
.env
23
.gradle
34
build/
45
!gradle/wrapper/gradle-wrapper.jar

Dockerfile

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Step 1: 애플리케이션 빌드
2+
FROM openjdk:17-jdk-slim AS builder
3+
4+
# 작업 디렉토리 설정
5+
WORKDIR /app
6+
7+
# Gradle Wrapper와 관련 파일 복사
8+
COPY gradlew .
9+
COPY gradle gradle
10+
COPY build.gradle .
11+
COPY settings.gradle .
12+
RUN chmod +x ./gradlew
13+
14+
# Gradle 종속성을 캐싱하여 빌드 속도 향상
15+
RUN ./gradlew dependencies --no-daemon
16+
17+
# 소스 코드 복사
18+
COPY src src
19+
20+
# 애플리케이션 빌드 (bootJar 실행)
21+
RUN ./gradlew bootJar --no-daemon
22+
23+
# Step 2: 런타임 이미지 생성
24+
FROM openjdk:17-jdk-slim
25+
26+
# 실행 디렉토리 설정
27+
WORKDIR /play-hive
28+
29+
# 빌드 단계에서 생성된 JAR 파일 복사
30+
COPY --from=builder /app/build/libs/*.jar app.jar
31+
32+
# 애플리케이션이 사용할 포트 노출
33+
EXPOSE 8080
34+
35+
# 애플리케이션 실행 명령
36+
ENTRYPOINT ["java", "-jar", "app.jar"]

docker-compose.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
version: '3.9'
2+
3+
services:
4+
app:
5+
image: ${DOCKER_USERNAME}/play-hive:latest # 사용할 이미지 이름
6+
build:
7+
context: . # Dockerfile이 위치한 디렉토리
8+
dockerfile: Dockerfile # 빌드에 사용할 Dockerfile
9+
ports:
10+
- "8080:8080" # 호스트와 컨테이너의 포트 매핑
11+
environment:
12+
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
13+
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
14+
DISCORD_APPLICATION_ID: ${DISCORD_APPLICATION_ID}
15+
DISCORD_PUBLIC_KEY: ${DISCORD_PUBLIC_KEY}
16+
DISCORD_CLIENT_SECRET: ${DISCORD_CLIENT_SECRET}
17+
KAKAO_REST_API_KEY: ${KAKAO_REST_API_KEY}
18+
KAKAO_CLIENT_SECRET: ${KAKAO_CLIENT_SECRET}
19+
NAVER_CLIENT_ID: ${NAVER_CLIENT_ID}
20+
NAVER_CLIENT_SECRET: ${NAVER_CLIENT_SECRET}
21+
SENDER_EMAIL: ${SENDER_EMAIL}
22+
EMAIL_PASSWORD: ${EMAIL_PASSWORD}
23+
EMAIL_USERNAME: ${EMAIL_USERNAME}
24+
restart: always # 컨테이너가 중단되었을 때 재시작 설정

0 commit comments

Comments
 (0)