[#13] feat: docker를 활용한 app과 nginx proxy 연결 기본 설정

- app-server는 docker-compose 활용한 build
- nginx, mysql db는 따로 docker container 구성
- 같은 docker network로 통합
This commit is contained in:
beaniejoy
2022-08-20 02:54:01 +09:00
parent b442b65739
commit 4d759069b7
7 changed files with 30 additions and 17 deletions

View File

@@ -1,4 +1,4 @@
FROM adoptopenjdk/openjdk11:latest as BUILD_IMAGE
FROM openjdk:17-alpine as BUILD_IMAGE
ENV WORK_DIR=/usr/app/
@@ -18,17 +18,15 @@ COPY src src
# jar 파일 build
RUN ./gradlew bootjar
FROM adoptopenjdk/openjdk11:latest
FROM openjdk:17-alpine
ENV WORK_DIR=/usr/app/
WORKDIR $WORK_DIR
COPY --from=BUILD_IMAGE $WORK_DIR/build/libs/*.jar tripleapp.jar
COPY --from=BUILD_IMAGE $WORK_DIR/build/libs/*.jar dongne-api.jar
ENTRYPOINT ["java", \
"-jar", \
"-Dspring.profiles.active=${PROFILE_OPTION}", \
"-Dspring.datasource.url=${SPRING_DATASOURCE_URL}", \
"-Dredis.host=${REDIS_HOST}", \
"tripleapp.jar"]
"dongne-api.jar"]

View File

@@ -1,15 +1,14 @@
version: "3.9"
services:
nginx:
image: nginx
container_name: nginx
ports:
- "80:80"
volumes:
- ./nginx/:/etc/nginx/conf.d/
app-server:
build:
context: .
dockerfile: Dockerfile
ports:
- "8080:8080"
env_file:
- env/app.env
networks:
default:
external:
name: api-net

1
env/app.env vendored Normal file
View File

@@ -0,0 +1 @@
PROFILE_OPTION=docker

5
nginx/app.conf Normal file
View File

@@ -0,0 +1,5 @@
server {
listen 80;
listen [::]:80;
}

View File

@@ -0,0 +1,6 @@
# local 내 docker 테스트용도
spring:
datasource:
url: jdbc:mysql://beanie-test-db:3306/dongne?autoreconnect=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
username: root
password: beaniejoy # TODO 추후 보안에 대해 생각해보기

View File

@@ -0,0 +1,5 @@
spring:
datasource:
url: jdbc:mysql://localhost:3306/dongne?autoreconnect=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
username: root
password: beaniejoy # TODO 추후 보안에 대해 생각해보기

View File

@@ -1,8 +1,7 @@
spring:
profiles:
active: local
datasource:
url: jdbc:mysql://localhost:3306/dongne?autoreconnect=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
username: root
password: beaniejoy # TODO 추후 보안에 대해 생각해보기
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
hibernate:
@@ -20,4 +19,4 @@ spring:
logging:
level:
org.hibernate.SQL: debug # logger 통해 로깅
# org.hibernate.type: trace
# org.hibernate.type: trace