将GNS服务容器化

1、新增 .dockerignore 文件用来保证构建镜像过程不受其他意外情况干扰
2、新增 application.yml.example 文件用来区分开发、测试环境
3、将GNS服务本身也容器化,运行 {repo}/middleware/start_docker_compose.sh 即可
This commit is contained in:
巴拉迪维 2021-09-15 10:03:33 +08:00
parent 22d2be75c3
commit 2b68746d73
11 changed files with 124 additions and 12 deletions

3
.dockerignore Normal file
View File

@ -0,0 +1,3 @@
/docker-data
/logs
.idea

2
.gitignore vendored
View File

@ -92,3 +92,5 @@ target/
/docker-data/ /docker-data/
/logs/ /logs/
*/src/main/resources/application.yml

View File

@ -7,12 +7,12 @@ logging:
spring: spring:
kafka: kafka:
producer: producer:
bootstrap_servers: localhost:29092 bootstrap_servers: localhost:29092,localhost:39092
client_id: gitlink_producer_01 client_id: gitlink_producer_01
retries: 5 retries: 5
batch_size: 16384 batch_size: 16384
consumer: consumer:
bootstrap_servers: localhost:29092 bootstrap_servers: localhost:29092,localhost:39092
client_id: gitlink_consumer client_id: gitlink_consumer
group_id: group-gitlink-notification group_id: group-gitlink-notification
auto_offset_reset: earliest auto_offset_reset: earliest
@ -27,6 +27,18 @@ spring:
# 提交模式 # 提交模式
ack-mode: record ack-mode: record
redis:
database: 0
host: 127.0.0.1
port: 6379
password:
pool:
max-active: 200
max-wait: -1
max-idle: 10
min-idle: 0
timeout: 1000
datasource: datasource:
# 配置数据源类型 # 配置数据源类型
driver-class-name: com.mysql.jdbc.Driver driver-class-name: com.mysql.jdbc.Driver

View File

@ -5,29 +5,29 @@
MYSQL_VERSION=5.7.35 MYSQL_VERSION=5.7.35
REDIS_VERSION=6.2.5 REDIS_VERSION=6.2.5
KAFKA_VERSION=latest KAFKA_VERSION=latest
XXL_JOB_ADMIN_VERSION=2.3.0 GITLINK_NOTIFICATION_SYS_VERSION=1.0.0
#============================================ Container config ============================================ #============================================ Container config ============================================
MYSQL_CONTAINER_NAME=gitlink_mysql MYSQL_CONTAINER_NAME=gitlink_mysql
REDIS_CONTAINER_NAME=gitlink_redis REDIS_CONTAINER_NAME=gitlink_redis
XXL_JOB_ADMIN_CONTAINER_NAME=gitlink_xxl_job_admin
ZOOKEEPER_CONTAINER_NAME=gitlink_zookeeper ZOOKEEPER_CONTAINER_NAME=gitlink_zookeeper
KAFKA_CONTAINER_01_NAME=gitlink_kafka_01 KAFKA_CONTAINER_01_NAME=gitlink_kafka_01
KAFKA_CONTAINER_02_NAME=gitlink_kafka_02 KAFKA_CONTAINER_02_NAME=gitlink_kafka_02
GNS_EXECUTOR_CONTAINER_NAME=gns_executor
GNS_READER_CONTAINER_NAME=gns_reader
GNS_WRITER_CONTAINER_NAME=gns_writer
#============================================ Ports config ============================================ #============================================ Ports config ============================================
MYSQL_LOCAL_PORT=33306 MYSQL_LOCAL_PORT=33306
REDIS_LOCAL_PORT=6379 REDIS_LOCAL_PORT=6379
ZOOKEEPER_LOCAL_PORT=22181 ZOOKEEPER_LOCAL_PORT=22181
XXL_JOB_ADMIN_LOCAL_PORT=9999
KAFKA_01_LOCAL_PORT=29092 KAFKA_01_LOCAL_PORT=29092
KAFKA_02_LOCAL_PORT=39092 KAFKA_02_LOCAL_PORT=39092
GNS_EXECUTOR_LOCAL_PORT=8083
#============================================ Kafka Broker ID config ============================================ GNS_WRITER_LOCAL_PORT=58082
KAFKA_01_BROKER_ID=1 GNS_READER_LOCAL_PORT=58080
KAFKA_02_BROKER_ID=2
#============================================ Path config ============================================ #============================================ Path config ============================================
# TODO: 需要预执行的 sql 脚本目录 # TODO: 需要预执行的 sql 脚本目录

View File

@ -0,0 +1,13 @@
# Dockerfile for gns-writer.jar
#FROM maven:3.8.2-openjdk-11-slim AS build
#COPY . /data
#WORKDIR /data
#RUN mvn clean package -DskipTests
FROM openjdk:11.0.12-jre-slim
COPY executor/target/gns-executor-1.0.0.jar /data/gns-executor-app.jar
WORKDIR /data
EXPOSE 8083
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-executor-app.jar"]

View File

@ -0,0 +1,13 @@
# Dockerfile for gns-writer.jar
#FROM maven:3.8.2-openjdk-11-slim AS build
#COPY . /data
#WORKDIR /data
#RUN mvn clean package -DskipTests
FROM openjdk:11.0.12-jre-slim
COPY reader/target/gns-reader-1.0.0.jar /data/gns-reader-app.jar
WORKDIR /data
EXPOSE 8081
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-reader-app.jar"]

View File

@ -92,6 +92,61 @@ services:
- gitlink_network - gitlink_network
gitlink-reader:
container_name: ${GNS_READER_CONTAINER_NAME}
hostname: gitlink_reader
image: gitlink/gns-reader:${GITLINK_NOTIFICATION_SYS_VERSION}
build:
context: ../
dockerfile: middleware/reader.Dockerfile
networks:
- gitlink_network
volumes:
- ${DOCKER_DATA_PATH}/logs/:/data/logs/
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_READER_LOCAL_PORT}:8081
gitlink-writer:
container_name: ${GNS_WRITER_CONTAINER_NAME}
hostname: gitlink_writer
image: gitlink/gns-writer:${GITLINK_NOTIFICATION_SYS_VERSION}
build:
context: ../
dockerfile: middleware/writer.Dockerfile
networks:
- gitlink_network
volumes:
- ${DOCKER_DATA_PATH}/logs/:/data/logs/
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_WRITER_LOCAL_PORT}:8082
gitlink-executor:
container_name: ${GNS_EXECUTOR_CONTAINER_NAME}
hostname: gitlink_executor
image: gitlink/gns-executor:${GITLINK_NOTIFICATION_SYS_VERSION}
build:
context: ../
dockerfile: middleware/executor.Dockerfile
networks:
- gitlink_network
volumes:
- ${DOCKER_DATA_PATH}/logs/:/data/logs/
depends_on:
- kafka1
- kafka2
ports:
- ${GNS_EXECUTOR_LOCAL_PORT}:8083
networks: networks:
gitlink_network: gitlink_network:
driver: bridge driver: bridge

View File

@ -1 +1,2 @@
docker-compose -f services.yml up mvn -f ../pom.xml clean package -DskipTests
docker-compose -f services.yml up --build --force-recreate

View File

@ -0,0 +1,13 @@
# Dockerfile for gns-writer.jar
#FROM maven:3.8.2-openjdk-11-slim AS build
#COPY . /data
#WORKDIR /data
#RUN mvn clean package -DskipTests
FROM openjdk:11.0.12-jre-slim
COPY writer/target/gns-writer-1.0.0.jar /data/gns-writer-app.jar
WORKDIR /data
EXPOSE 8082
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS gns-writer-app.jar"]

View File

@ -29,7 +29,7 @@ spring:
kafka: kafka:
producer: producer:
bootstrap_servers: localhost:29092 bootstrap_servers: localhost:29092,localhost:39092
client_id: gitlink_producer_01 client_id: gitlink_producer_01
retries: 5 retries: 5
batch_size: 16384 batch_size: 16384

View File

@ -7,7 +7,7 @@ logging:
spring: spring:
kafka: kafka:
producer: producer:
bootstrap_servers: localhost:29092 bootstrap_servers: localhost:29092,localhost:39092
client_id: gitlink_producer_01 client_id: gitlink_producer_01
retries: 5 retries: 5
batch_size: 16384 batch_size: 16384