From e2df4ec64cfc12a1993c4af1a4c192d9e25dfcdd Mon Sep 17 00:00:00 2001 From: kimjaeyeol Date: Tue, 9 Nov 2021 15:28:07 +0900 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Test=20docker=20compose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/config/Dockerfile | 2 + .../config/src/main/resources/application.yml | 2 +- docker-compose/app/docker-compose.yml | 39 +++++++++++++++---- docker-compose/app/mesh/docker-compose.yml | 16 ++++++-- docker-compose/app/service/docker-compose.yml | 14 ++++++- docker-compose/elk/docker-compose.yml | 6 +-- 6 files changed, 63 insertions(+), 16 deletions(-) diff --git a/backend/config/Dockerfile b/backend/config/Dockerfile index c52c8a0..b3bd35d 100644 --- a/backend/config/Dockerfile +++ b/backend/config/Dockerfile @@ -2,6 +2,8 @@ # base image - openjdk8 FROM openjdk:8-jre-alpine +# curl(healthcheck) +RUN apk --no-cache add curl # directory 생성 RUN mkdir -p /usr/app/config # jar 파일이 복사되는 위치 diff --git a/backend/config/src/main/resources/application.yml b/backend/config/src/main/resources/application.yml index f96b0b6..28720b6 100644 --- a/backend/config/src/main/resources/application.yml +++ b/backend/config/src/main/resources/application.yml @@ -13,7 +13,7 @@ spring: 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: - host: localhost + host: ${rabbitmq.hostname:localhost} port: 5672 username: guest password: guest diff --git a/docker-compose/app/docker-compose.yml b/docker-compose/app/docker-compose.yml index f6e6b12..cb6c94e 100644 --- a/docker-compose/app/docker-compose.yml +++ b/docker-compose/app/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.2' services: rabbitmq: container_name: rabbitmq @@ -28,12 +28,19 @@ services: volumes: - ${HOME}/workspace.edu/egovframe-msa-edu/config:/usr/app/config # volume bind environment: - ENCRYPT_KEY: token_secret SPRING_PROFILES_ACTIVE: native - # logstash_hostname: logstash:5001 + ENCRYPT_KEY: token_secret + logstash_hostname: logstash:5001 + SEARCH_LOCATION: file:///usr/app/config RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin TZ: Asia/Seoul + healthcheck: + test: curl -f http://localhost:8888/actuator/health || exit 1 + interval: 10s + timeout: 1s + retries: 10 + start_period: 30s discovery: container_name: discovery @@ -51,7 +58,7 @@ services: image: egovframe/msa-apigateway:latest ports: - "8000:8000" - restart: on-failure + restart: always volumes: - ${HOME}/workspace:/usr/app/msa-attach-volume environment: @@ -60,25 +67,33 @@ services: EUREKA_INSTANCE_HOSTNAME: discovery RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin + TOKEN_SECRET: egovframe APP_HOME: /usr/app TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy userservice: container_name: userservice image: egovframe/msa-user-service:latest restart: always volumes: - - ${HOME}/workspace.edu/docker-compose:/usr/app/msa-attach-volume + - ${HOME}/workspace:/usr/app/msa-attach-volume environment: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app - # logstash_hostname: logstash:5001 + logstash_hostname: logstash:5001 EUREKA_INSTANCE_HOSTNAME: discovery MYSQL_HOSTNAME: mysql RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy boardservice: container_name: boardservice @@ -90,10 +105,14 @@ services: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default EUREKA_INSTANCE_HOSTNAME: discovery + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app - # logstash_hostname: logstash:5001 + logstash_hostname: logstash:5001 MYSQL_HOSTNAME: mysql TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy portalservice: container_name: portalservice @@ -105,10 +124,14 @@ services: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default EUREKA_INSTANCE_HOSTNAME: discovery + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app - # logstash_hostname: logstash:5001 + logstash_hostname: logstash:5001 MYSQL_HOSTNAME: mysql TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy networks: default: diff --git a/docker-compose/app/mesh/docker-compose.yml b/docker-compose/app/mesh/docker-compose.yml index 29d6406..c34807a 100644 --- a/docker-compose/app/mesh/docker-compose.yml +++ b/docker-compose/app/mesh/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.2' services: config: container_name: config @@ -9,11 +9,19 @@ services: volumes: - ${HOME}/workspace.edu/egovframe-msa-edu/config:/usr/app/config # volume bind environment: + SPRING_PROFILES_ACTIVE: native ENCRYPT_KEY: token_secret logstash_hostname: logstash:5001 + SEARCH_LOCATION: file:///usr/app/config RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin TZ: Asia/Seoul + healthcheck: + test: curl -f http://localhost:8888/actuator/health || exit 1 + interval: 10s + timeout: 1s + retries: 10 + start_period: 30s discovery: container_name: discovery @@ -31,7 +39,7 @@ services: image: egovframe/msa-apigateway:latest ports: - "8000:8000" - restart: on-failure + restart: always volumes: - ${HOME}/workspace:/usr/app/msa-attach-volume environment: @@ -40,10 +48,12 @@ services: EUREKA_INSTANCE_HOSTNAME: discovery RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin + TOKEN_SECRET: egovframe APP_HOME: /usr/app TZ: Asia/Seoul depends_on: - - config + config: + condition: service_healthy rabbitmq: container_name: rabbitmq diff --git a/docker-compose/app/service/docker-compose.yml b/docker-compose/app/service/docker-compose.yml index 1ab18b4..6c936e3 100644 --- a/docker-compose/app/service/docker-compose.yml +++ b/docker-compose/app/service/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3' +version: '3.2' services: userservice: container_name: userservice @@ -9,6 +9,7 @@ services: environment: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app logstash_hostname: logstash:5001 EUREKA_INSTANCE_HOSTNAME: discovery @@ -16,6 +17,9 @@ services: RABBITMQ_HOSTNAME: rabbitmq ZIPKIN_HOSTNAME: zipkin TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy boardservice: container_name: boardservice @@ -27,10 +31,14 @@ services: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default EUREKA_INSTANCE_HOSTNAME: discovery + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app logstash_hostname: logstash:5001 MYSQL_HOSTNAME: mysql TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy portalservice: container_name: portalservice @@ -42,10 +50,14 @@ services: SPRING_CLOUD_CONFIG_URI: http://config:8888 SPRING_PROFILES_ACTIVE: default EUREKA_INSTANCE_HOSTNAME: discovery + MESSAGES_DIRECTORY: /usr/app/msa-attach-volume/messages APP_HOME: /usr/app logstash_hostname: logstash:5001 MYSQL_HOSTNAME: mysql TZ: Asia/Seoul + depends_on: + config: + condition: service_healthy networks: default: diff --git a/docker-compose/elk/docker-compose.yml b/docker-compose/elk/docker-compose.yml index 91b99cc..e406648 100644 --- a/docker-compose/elk/docker-compose.yml +++ b/docker-compose/elk/docker-compose.yml @@ -3,7 +3,7 @@ services: elasticsearch: container_name: elasticsearch image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1 - # restart: always + restart: always ports: - "9200:9200" environment: @@ -20,7 +20,7 @@ services: logstash: container_name: logstash image: docker.elastic.co/logstash/logstash:7.10.1 - # restart: always + restart: always ports: - "5001:5001" environment: @@ -39,7 +39,7 @@ services: kibana: container_name: kibana image: docker.elastic.co/kibana/kibana:7.10.1 - # restart: always + restart: always ports: - "5601:5601" environment: