🚀 Docker compose edu test

This commit is contained in:
kimjaeyeol
2021-10-27 15:17:34 +09:00
parent fcceafde0f
commit 5dce245521
24 changed files with 79 additions and 54 deletions

View File

@@ -1,6 +1,7 @@
# openjdk8 base image # openjdk8 base image
FROM openjdk:8-jre-alpine FROM openjdk:8-jre-alpine
# directory 생성
RUN mkdir -p /usr/app/msa-attach-volume/messages RUN mkdir -p /usr/app/msa-attach-volume/messages
# jar 파일이 복사되는 위치 # jar 파일이 복사되는 위치
ENV APP_HOME=/usr/app/ ENV APP_HOME=/usr/app/

View File

@@ -2,5 +2,4 @@ spring:
cloud: cloud:
config: config:
uri: http://localhost:8888 uri: http://localhost:8888
name: application name: application
enabled: true

View File

@@ -15,7 +15,7 @@
</springProfile> </springProfile>
<springProfile name="!default"> <springProfile name="!default">
<!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 --> <!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 -->
<property name="destination" value="${destination:-localhost:5001}" /> <property name="destination" value="${logstash_hostname:-localhost:5001}" />
<property name="app_name" value="${app_name:-apigateway}" /> <property name="app_name" value="${app_name:-apigateway}" />
<!-- ELK - Logstash 로 로그를 전송하기 위한 appender --> <!-- ELK - Logstash 로 로그를 전송하기 위한 appender -->

View File

@@ -1,6 +1,8 @@
# openjdk8 base image # openjdk8 base image
FROM openjdk:8-jre-alpine FROM openjdk:8-jre-alpine
# directory 생성
RUN mkdir -p /usr/app/msa-attach-volume/messages
# jar 파일이 복사되는 위치 # jar 파일이 복사되는 위치
ENV APP_HOME=/usr/app/ ENV APP_HOME=/usr/app/
# 작업 시작 위치 # 작업 시작 위치

View File

@@ -15,7 +15,7 @@
</springProfile> </springProfile>
<springProfile name="!default"> <springProfile name="!default">
<!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 --> <!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 -->
<property name="destination" value="${destination:-localhost:5001}" /> <property name="destination" value="${logstash_hostname:-localhost:5001}" />
<property name="app_name" value="${app_name:-board-service}" /> <property name="app_name" value="${app_name:-board-service}" />
<!-- ELK - Logstash 로 로그를 전송하기 위한 appender --> <!-- ELK - Logstash 로 로그를 전송하기 위한 appender -->

View File

@@ -1,6 +1,9 @@
# docker run --name egov-config -d -p 8888:8888 -e profile=prod -e ENCRYPT_KEY=??? egovframework/egov-config # docker run --name egov-config -d -p 8888:8888 -e profile=prod -e ENCRYPT_KEY=??? egovframework/egov-config
# base image - openjdk8 # base image - openjdk8
FROM openjdk:8-jre-alpine FROM openjdk:8-jre-alpine
# directory 생성
RUN mkdir -p /usr/app/config
# jar 파일이 복사되는 위치 # jar 파일이 복사되는 위치
ENV APP_HOME=/usr/app/ ENV APP_HOME=/usr/app/
# 작업 시작 위치 # 작업 시작 위치
@@ -10,4 +13,4 @@ COPY build/libs/*.jar config.jar
# application port # application port
EXPOSE 8888 EXPOSE 8888
# 실행 # 실행
CMD ["java", "-Dspring.profiles.active=${profile:native}", "-jar", "config.jar"] CMD ["java", "-Dsearch.location=/usr/app/config", "-jar", "config.jar"]

View File

@@ -10,7 +10,8 @@ spring:
config: config:
server: server:
native: native:
search-locations: file:///usr/app/config # docker search-locations: ${search.location:file:///${user.home}/workspace.edu/egovframe-msa-edu/config} # Windows
# search-locations: file://${user.home}/workspace.edu/egovframe-msa-edu/config # MacOS
rabbitmq: rabbitmq:
host: localhost host: localhost
port: 5672 port: 5672

View File

@@ -1,2 +1,2 @@
encrypt: encrypt:
key: egovframe # 대칭키 임의의 값 key: egovframe # 대칭키 임의의 값

View File

@@ -14,8 +14,8 @@
</root> </root>
</springProfile> </springProfile>
<springProfile name="!native"> <springProfile name="!native">
<!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 --> <!-- java -Dlogstash_hostname="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 -->
<property name="destination" value="${destination:-localhost:5001}" /> <property name="destination" value="${logstash_hostname:-localhost:5001}" />
<property name="app_name" value="${app_name:-config-server}" /> <property name="app_name" value="${app_name:-config-server}" />
<!-- ELK - Logstash 로 로그를 전송하기 위한 appender --> <!-- ELK - Logstash 로 로그를 전송하기 위한 appender -->

View File

@@ -1,6 +1,8 @@
# openjdk8 base image # openjdk8 base image
FROM openjdk:8-jre-alpine FROM openjdk:8-jre-alpine
# directory 생성
RUN mkdir -p /usr/app/msa-attach-volume/messages
# jar 파일이 복사되는 위치 # jar 파일이 복사되는 위치
ENV APP_HOME=/usr/app/ ENV APP_HOME=/usr/app/
# 작업 시작 위치 # 작업 시작 위치

View File

@@ -15,7 +15,7 @@
</springProfile> </springProfile>
<springProfile name="!default"> <springProfile name="!default">
<!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 --> <!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 -->
<property name="destination" value="${destination:-localhost:5001}" /> <property name="destination" value="${logstash_hostname:-localhost:5001}" />
<property name="app_name" value="${app_name:-portal-service}" /> <property name="app_name" value="${app_name:-portal-service}" />
<!-- ELK - Logstash 로 로그를 전송하기 위한 appender --> <!-- ELK - Logstash 로 로그를 전송하기 위한 appender -->

View File

@@ -1,7 +1,8 @@
# openjdk8 base image # openjdk8 base image
FROM openjdk:8-jre-alpine FROM openjdk:8-jre-alpine
RUN mkdir -p /usr/app/msa-attach-volume # directory 생성
RUN mkdir -p /usr/app/msa-attach-volume/messages
# jar 파일이 복사되는 위치 # jar 파일이 복사되는 위치
ENV APP_HOME=/usr/app/ ENV APP_HOME=/usr/app/
# 작업 시작 위치 # 작업 시작 위치

View File

@@ -15,7 +15,7 @@
</springProfile> </springProfile>
<springProfile name="!default"> <springProfile name="!default">
<!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 --> <!-- java -Ddestination="localhost:5001" 와 같이 변경할 수 있다. cf 환경에서는 manifest.yml 파일에 환경변수로 추가 -->
<property name="destination" value="${destination:-localhost:5001}" /> <property name="destination" value="${logstash_hostname:-localhost:5001}" />
<property name="app_name" value="${app_name:-user-service}" /> <property name="app_name" value="${app_name:-user-service}" />
<!-- ELK - Logstash 로 로그를 전송하기 위한 appender --> <!-- ELK - Logstash 로 로그를 전송하기 위한 appender -->

View File

@@ -16,12 +16,10 @@ eureka:
# file attach location - messages{lang}.properties 도 이 경로에 위치한다. # file attach location - messages{lang}.properties 도 이 경로에 위치한다.
file: file:
directory: ${user.home}/msa-attach-volume # url 사용시에는 사용되지 않는다 directory: ${app.home:${user.home}}/msa-attach-volume # url 사용시에는 사용되지 않는다
url: http://localhost:8080 # nginx 로 파일 다운로드 처리 url: http://localhost:8080 # nginx 로 파일 다운로드 처리
messages: messages:
directory: ${file.directory}/messages directory: ${file.directory}/messages
logstash:
url: localhost:8086
apigateway: apigateway:
host: http://localhost:${server.port} host: http://localhost:${server.port}
@@ -29,12 +27,12 @@ apigateway:
# rabbitmq server # rabbitmq server
spring: spring:
rabbitmq: rabbitmq:
host: localhost host: ${rabbitmq.hostname:${localhost}}
port: 5672 port: 5672
username: guest username: guest
password: guest password: guest
zipkin: zipkin:
base-url: http://localhost:8085 base-url: http://${zipkin.hostname:${localhost}}:8085
egov: egov:
message: hello message: hello

View File

@@ -1,5 +1,5 @@
database: database:
url: jdbc:mysql://localhost:3306/msaportal url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
spring: spring:
datasource: datasource:

View File

@@ -1,5 +1,5 @@
database: database:
url: jdbc:mysql://localhost:3306/msaportal url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
spring: spring:
datasource: datasource:

View File

@@ -1,6 +1,6 @@
spring: spring:
r2dbc: r2dbc:
url: r2dbc:mysql://localhost:3306/reservation?serverTimezone=Asia/Seoul url: r2dbc:mysql://${mysql.hostname:localhost}:3306/reservation?serverTimezone=Asia/Seoul
username: msaportal username: msaportal
password: msaportal password: msaportal
cloud: cloud:

View File

@@ -1,6 +1,6 @@
spring: spring:
r2dbc: r2dbc:
url: r2dbc:mysql://localhost:3306/msaportal?serverTimezone=Asia/Seoul url: r2dbc:mysql://${mysql.hostname:localhost}:3306/msaportal?serverTimezone=Asia/Seoul
username: msaportal username: msaportal
password: msaportal password: msaportal
cloud: cloud:

View File

@@ -1,6 +1,6 @@
spring: spring:
r2dbc: r2dbc:
url: r2dbc:mysql://localhost:3306/reservation?serverTimezone=Asia/Seoul url: r2dbc:mysql://${mysql.hostname:localhost}:3306/reservation?serverTimezone=Asia/Seoul
username: msaportal username: msaportal
password: msaportal password: msaportal
cloud: cloud:

View File

@@ -1,5 +1,5 @@
database: database:
url: jdbc:mysql://localhost:3306/msaportal url: jdbc:mysql://${mysql.hostname:localhost}:3306/msaportal
spring: spring:
datasource: datasource:

View File

@@ -1,41 +1,53 @@
version: '3.8' version: '3'
services: services:
egov-user-service: userservice:
container_name: egov-user-service container_name: userservice
image: egovframe/msa-user-service:latest image: egovframe/msa-user-service:latest
restart: always restart: always
#networks: egovnetwork
volumes: volumes:
- ${HOME}/msa-attach-volume:/usr/app/msa-attach-volume - ${HOME}/workspace/docker-compose:/usr/app/msa-attach-volume
environment: environment:
SPRING_CLOUD_CONFIG_URI: http://config:8888
SPRING_PROFILES_ACTIVE: default SPRING_PROFILES_ACTIVE: default
depends_on: APP_HOME: /usr/app
- egov-apigateway logstash_hostname: logstash:5001
EUREKA_INSTANCE_HOSTNAME: discovery
MYSQL_HOSTNAME: mysql
RABBITMQ_HOSTNAME: rabbitmq
ZIPKIN_HOSTNAME: zipkin
TZ: Asia/Seoul
egov-board-service: boardservice:
container_name: egov-board-service container_name: boardservice
image: egovframe/msa-board-service:latest image: egovframe/msa-board-service:latest
restart: always restart: always
#networks: egovnetwork
volumes: volumes:
- ${HOME}/msa-attach-volume:/usr/app/msa-attach-volume - ${HOME}/workspace:/usr/app/msa-attach-volume
environment: environment:
SPRING_CLOUD_CONFIG_URI: http://config:8888
SPRING_PROFILES_ACTIVE: default SPRING_PROFILES_ACTIVE: default
depends_on: EUREKA_INSTANCE_HOSTNAME: discovery
- egov-apigateway APP_HOME: /usr/app
logstash_hostname: logstash:5001
MYSQL_HOSTNAME: mysql
TZ: Asia/Seoul
egov-portal-service: portalservice:
container_name: egov-portal-service container_name: portalservice
image: egovframe/msa-portal-service:latest image: egovframe/msa-portal-service:latest
restart: always restart: always
#networks: egovnetwork
volumes: volumes:
- ${HOME}/msa-attach-volume:/usr/app/msa-attach-volume - ${HOME}/workspace:/usr/app/msa-attach-volume
environment: environment:
SPRING_CLOUD_CONFIG_URI: http://config:8888
SPRING_PROFILES_ACTIVE: default SPRING_PROFILES_ACTIVE: default
depends_on: EUREKA_INSTANCE_HOSTNAME: discovery
- egov-apigateway APP_HOME: /usr/app
logstash_hostname: logstash:5001
MYSQL_HOSTNAME: mysql
TZ: Asia/Seoul
# networks: networks:
# egovnetwork: default:
# driver: bridge external:
name: egov-network

View File

@@ -10,6 +10,9 @@ services:
- ${HOME}/workspace/egovframe-msa-edu/config:/usr/app/config # volume bind - ${HOME}/workspace/egovframe-msa-edu/config:/usr/app/config # volume bind
environment: environment:
ENCRYPT_KEY: token_secret ENCRYPT_KEY: token_secret
logstash_hostname: logstash:5001
RABBITMQ_HOSTNAME: rabbitmq
ZIPKIN_HOSTNAME: zipkin
TZ: Asia/Seoul TZ: Asia/Seoul
discovery: discovery:
@@ -35,6 +38,9 @@ services:
SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_CLOUD_CONFIG_URI: http://config:8888
SPRING_PROFILES_ACTIVE: default SPRING_PROFILES_ACTIVE: default
EUREKA_INSTANCE_HOSTNAME: discovery EUREKA_INSTANCE_HOSTNAME: discovery
RABBITMQ_HOSTNAME: rabbitmq
ZIPKIN_HOSTNAME: zipkin
APP_HOME: /usr/app
TZ: Asia/Seoul TZ: Asia/Seoul
depends_on: depends_on:
- config - config

View File

@@ -14,10 +14,8 @@ services:
memlock: memlock:
soft: -1 soft: -1
hard: -1 hard: -1
networks:
- elastic
volumes: volumes:
- ${HOME}/docker-volume/elasticsearch/data:/usr/share/elasticsearch/data - ${PWD}/data:/usr/share/elasticsearch/data
logstash: logstash:
container_name: logstash container_name: logstash
@@ -37,8 +35,6 @@ services:
source: ${PWD}/logstash/pipeline source: ${PWD}/logstash/pipeline
target: /usr/share/logstash/pipeline target: /usr/share/logstash/pipeline
read_only: true read_only: true
networks:
- elastic
depends_on: depends_on:
- elasticsearch - elasticsearch
@@ -57,11 +53,10 @@ services:
source: ${PWD}/kibana/config/kibana.yml source: ${PWD}/kibana/config/kibana.yml
target: /usr/share/kibana/config/kibana.yml target: /usr/share/kibana/config/kibana.yml
read_only: true read_only: true
networks:
- elastic
depends_on: depends_on:
- elasticsearch - elasticsearch
networks: networks:
elastic: default:
driver: bridge external:
name: egov-network

View File

@@ -17,3 +17,8 @@ services:
ports: ports:
- "3306:3306" - "3306:3306"
container_name: mysql container_name: mysql
networks:
default:
external:
name: egov-network