gitlink-notification-system/middleware/services.yml

164 lines
4.7 KiB
YAML

version: '3'
services:
mysql:
image: mysql:${MYSQL_VERSION}
container_name: ${MYSQL_CONTAINER_NAME}
hostname: mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_USER=${MYSQL_USER}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=${MYSQL_DATABASE}
volumes:
- ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql
- ${SQL_SCRIPT_PATH}/gns-notification.sql:/docker-entrypoint-initdb.d/0001.sql
- ${SQL_SCRIPT_PATH}/hehui-gns-notification.sql:/docker-entrypoint-initdb.d/0002.sql
- ${SQL_SCRIPT_PATH}/gns-email.sql:/docker-entrypoint-initdb.d/0003.sql
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
ports:
- ${MYSQL_LOCAL_PORT}:3306
networks:
- gitlink_network
redis:
image: redis:${REDIS_VERSION}
container_name: ${REDIS_CONTAINER_NAME}
hostname: redis
volumes:
- ${DOCKER_DATA_PATH}/redis/data:/data
- ${DOCKER_DATA_PATH}/redis/logs:/logs
ports:
- ${REDIS_LOCAL_PORT}:6379
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-zookeeper
zookeeper:
image: confluentinc/cp-zookeeper:latest
container_name: ${ZOOKEEPER_CONTAINER_NAME}
hostname: zookeeper
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
ports:
- ${ZOOKEEPER_LOCAL_PORT}:2181
volumes:
- ${DOCKER_DATA_PATH}/zookeeper:/var/lib/zookeeper
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka1:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_01_NAME}
hostname: kafka1
depends_on:
- zookeeper
ports:
- ${KAFKA_01_LOCAL_PORT}:29092
volumes:
- ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_01_NAME}:/var/lib/kafka
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka1:9092,PLAINTEXT_HOST://localhost:${KAFKA_01_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- gitlink_network
# See Also: https://hub.docker.com/r/confluentinc/cp-kafka
kafka2:
image: confluentinc/cp-kafka:latest
container_name: ${KAFKA_CONTAINER_02_NAME}
hostname: kafka2
depends_on:
- zookeeper
ports:
- ${KAFKA_02_LOCAL_PORT}:39092
volumes:
- ${DOCKER_DATA_PATH}/kafka/${KAFKA_CONTAINER_02_NAME}:/var/lib/kafka
- TZ=Asia/Shanghai
environment:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka2:9092,PLAINTEXT_HOST://localhost:${KAFKA_02_LOCAL_PORT}
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
networks:
- 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/
- TZ=Asia/Shanghai
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/
- TZ=Asia/Shanghai
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/
- TZ=Asia/Shanghai
depends_on:
- kafka1
- kafka2
- redis
- mysql
ports:
- ${GNS_EXECUTOR_LOCAL_PORT}:8083
networks:
gitlink_network:
driver: bridge
name: gitlink_network
driver_opts:
com.docker.network.enable_ipv6: "true"