diff --git a/.gitignore b/.gitignore index 3bf5fa8..00e4e1b 100644 --- a/.gitignore +++ b/.gitignore @@ -88,4 +88,5 @@ lint/tmp/ /.idea/ target/ -.env \ No newline at end of file +.env +/docker-data/ diff --git a/admin/xxl-job-admin部署.md b/admin/xxl-job-admin部署.md deleted file mode 100644 index fb8d107..0000000 --- a/admin/xxl-job-admin部署.md +++ /dev/null @@ -1,41 +0,0 @@ -# xxl-job-admin部署文档 -## 代码下载 -使用gitee托管下载更快 -```shell script -git clone https://gitee.com/xuxueli0323/xxl-job.git -``` -## 配置说明 -进xxl-job项目根目录,找到相关配置文件:application.properties -配置文件目录为:xxl-job/xxl-job-admin/src/main/resources -主要对以下项做修改: -```properties -### web 服务器启动的端口和根路径 -server.port=80 -server.servlet.context-path=/xxl-job-admin - -### xxl-job, datasource 数据库配置 -spring.datasource.url=jdbc:mysql://127.0.0.1:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai -spring.datasource.username=root -spring.datasource.password=keep - -### xxl-job, email ,xxl-job 本身出错发送的邮件 -spring.mail.host=smtp.qq.com -spring.mail.port=25 -spring.mail.username=27447985@qq.com -spring.mail.password=123456 - -### xxl-job, access token , 简易的访问token -xxl.job.accessToken= -``` -## 代码打包 -切换到根目录执行 -```shell script -mvn clean install -``` -## 代码部署 -打包完毕后拷贝jar包:xxl-job-admin-2.3.0.jar -目录为 xxl-job/xxl-job-admin/target -执行 -```shell script -nohup java -jar xxl-job-admin-2.3.0.jar >/dev/null 2>&1 & -``` diff --git a/db/structure.sql b/db/xxl-job-structure.sql similarity index 96% rename from db/structure.sql rename to db/xxl-job-structure.sql index 26428f6..ec7c32e 100644 --- a/db/structure.sql +++ b/db/xxl-job-structure.sql @@ -2,8 +2,8 @@ # XXL-JOB v2.3.0 # Copyright (c) 2015-present, xuxueli. -CREATE database if NOT EXISTS `gitlink` default character set utf8mb4 collate utf8mb4_unicode_ci; -use `gitlink`; +CREATE database if NOT EXISTS `gitlink_notification` default character set utf8mb4 collate utf8mb4_unicode_ci; +use `gitlink_notification`; SET NAMES utf8mb4; diff --git a/middleware/.env.example b/middleware/.env.example index d2b417b..c204d53 100644 --- a/middleware/.env.example +++ b/middleware/.env.example @@ -1,37 +1,44 @@ # Environment Variables for docker-compose -# Images config -MYSQL_VERSION=5.7.35 -REDIS_VERSION=latest -KAFKA_VERSION=latest +#============================================ Images config ============================================ + +MYSQL_VERSION=5.7.35 +REDIS_VERSION=6.2.5 +KAFKA_VERSION=latest +XXL_JOB_ADMIN_VERSION=2.3.0 + +#============================================ Container config ============================================ -# Containers config MYSQL_CONTAINER_NAME=gitlink_mysql REDIS_CONTAINER_NAME=gitlink_redis +XXL_JOB_ADMIN_CONTAINER_NAME=gitlink_xxl_job_admin +ZOOKEEPER_CONTAINER_NAME=gitlink_zookeepr +KAFKA_CONTAINER_NAME=gitlink_kafka +KAFKA_MANAGER_CONTAINER_NAME=gitlink_kafka_manager -# Ports config -MYSQL_LOCAL_PORT=3306 ##TODO: Change port number to your lcoal port -REDIS_LOCAL_PORT=6379 ##TODO: Change port number to your lcoal port -ZOOKEEPER_LOCAL_PORT=2181 ##TODO: Change port number to your lcoal port -KAFKA_LOCAL_PORT=9092 ##TODO: Change port number to your lcoal port -KAFKA_MANAGER_LOCAL_PORT=9003 ##TODO: Change port number to your lcoal port +#============================================ Ports config ============================================ -# Hosts config -KAFKA_HOST=172.16.15.29 +MYSQL_LOCAL_PORT=33306 # TODO: MysQL 本地端口 +REDIS_LOCAL_PORT=6379 # TODO: Redis 本地端口 +ZOOKEEPER_LOCAL_PORT=2181 # TODO: Zookeeper 本地端口 +KAFKA_LOCAL_PORT=9092 # TODO: Kafka 本地端口 +KAFKA_MANAGER_LOCAL_PORT=9003 # TODO: Kafka 管理本地端口 +XXL_JOB_ADMIN_LOCAL_PORT=9999 #TODO: xxl-job-admin 本地端口 -# Path config -MYSQL_WORK_PATH=D:\repos\mysql-docker ## TODO: Change path to your local file system path -MYSQL_DATA_PATH=D:\repos\mysql-docker ## TODO: Change path to your local file system path -REDIS_WORK_PATH=D:\repos\redis-docker ## TODO: Change path to your local file system path +#============================================ Path config ============================================ +# TODO: 需要预执行的 sql 脚本目录 +SQL_SCRIPT_PATH=/Users/barat/Documents/Institutue/repos/gitlink-notification-system/db +# TODO: Docker 运行时数据目录 +DOCKER_DATA_PATH=/Users/barat/Documents/Institutue/repos/gitlink-notification-system/docker-data -# Mysql config +#============================================ MySQL config ============================================ MYSQL_ROOT_PASSWORD=gitLiNk_827 MYSQL_USER=gitlink MYSQL_PASSWORD=giTlinK0^827 -MYSQL_DATABASE=gitlink +MYSQL_DATABASE=gitlink_notification -# Kafka config +#============================================ Kafaka config ============================================ KAFKA_LOG_RETENTION_HOURS=120 KAFKA_MESSAGE_MAX_BYTES=10000000 KAFKA_REPLICA_FETCH_MAX_BYTES=10000000 diff --git a/middleware/.md b/middleware/.md deleted file mode 100644 index abe7ded..0000000 --- a/middleware/.md +++ /dev/null @@ -1,5 +0,0 @@ -# 中间件使用说明 -将示例文件复制为 .env,然后按需修改相关环境变量 -```shell script -cp .env.example .env -``` \ No newline at end of file diff --git a/middleware/services.yml b/middleware/services.yml index b2bdd91..6d39889 100644 --- a/middleware/services.yml +++ b/middleware/services.yml @@ -1,6 +1,7 @@ version: '3' services: - db: + + mysql: image: mysql:${MYSQL_VERSION} container_name: ${MYSQL_CONTAINER_NAME} environment: @@ -9,44 +10,95 @@ services: - MYSQL_PASSWORD=${MYSQL_PASSWORD} - MYSQL_DATABASE=${MYSQL_DATABASE} volumes: - - ${MYSQL_DATA_PATH}/gitlink_data:/var/lib/mysql - - ${MYSQL_WORK_PATH}/sql/structure.sql:/docker-entrypoint-initdb.d/0000.sql + - ${DOCKER_DATA_PATH}/mysql:/var/lib/mysql + - ${SQL_SCRIPT_PATH}/xxl-job-structure.sql:/docker-entrypoint-initdb.d/0000.sql ports: - ${MYSQL_LOCAL_PORT}:3306 + networks: + - gitlink_network + + redis: image: redis:${REDIS_VERSION} container_name: ${REDIS_CONTAINER_NAME} volumes: - - ${REDIS_WORK_PATH}/data:/data - - ${REDIS_WORK_PATH}/redis.conf:/usr/local/etc/redis/redis.conf - - ${REDIS_WORK_PATH}/logs:/logs + - ${DOCKER_DATA_PATH}/redis/data:/data + - ${DOCKER_DATA_PATH}/redis/logs:/logs ports: - ${REDIS_LOCAL_PORT}:6379 + networks: + - gitlink_network + + + + xxl-job-admin: + image: xuxueli/xxl-job-admin:${XXL_JOB_ADMIN_VERSION} + container_name: ${XXL_JOB_ADMIN_CONTAINER_NAME} + environment: + - JAVA_OPTS=-Xmx512m + - PARAMS=--spring.datasource.url=jdbc:mysql://${MYSQL_CONTAINER_NAME}:3306/gitlink_notification?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai --spring.datasource.username=${MYSQL_USER} --spring.datasource.password=${MYSQL_PASSWORD} + volumes: + - ${DOCKER_DATA_PATH}/xxl-job-admin:/data/applogs + ports: + - ${XXL_JOB_ADMIN_LOCAL_PORT}:8080 + depends_on: + - mysql + networks: + - gitlink_network + + zookeeper: image: wurstmeister/zookeeper + container_name: ${ZOOKEEPER_CONTAINER_NAME} ports: - ${ZOOKEEPER_LOCAL_PORT}:2181 + networks: + - gitlink_network + + + kafka: image: wurstmeister/kafka + container_name: ${KAFKA_CONTAINER_NAME} volumes: - /etc/localtime:/etc/localtime ports: - ${KAFKA_LOCAL_PORT}:9092 + networks: + - gitlink_network environment: - KAFKA_ADVERTISED_HOST_NAME: ${KAFKA_HOST} - KAFKA_ZOOKEEPER_CONNECT: ${KAFKA_HOST}:${ZOOKEEPER_LOCAL_PORT} - KAFKA_ADVERTISED_PORT: ${KAFKA_LOCAL_PORT} + KAFKA_ADVERTISED_HOST_NAME: ${KAFKA_CONTAINER_NAME} + KAFKA_ZOOKEEPER_CONNECT: ${ZOOKEEPER_CONTAINER_NAME}:2181 + KAFKA_ADVERTISED_PORT: 9092 KAFKA_LOG_RETENTION_HOURS: ${KAFKA_LOG_RETENTION_HOURS} KAFKA_MESSAGE_MAX_BYTES: ${KAFKA_MESSAGE_MAX_BYTES} KAFKA_REPLICA_FETCH_MAX_BYTES: ${KAFKA_REPLICA_FETCH_MAX_BYTES} KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS: ${KAFKA_GROUP_MAX_SESSION_TIMEOUT_MS} KAFKA_NUM_PARTITIONS: ${KAFKA_NUM_PARTITIONS} KAFKA_DELETE_RETENTION_MS: ${KAFKA_DELETE_RETENTION_MS} + + + kafka-manager: image: sheepkiller/kafka-manager + container_name: ${KAFKA_MANAGER_CONTAINER_NAME} + networks: + - gitlink_network environment: - ZK_HOSTS: ${KAFKA_HOST} + ZK_HOSTS: ${ZOOKEEPER_CONTAINER_NAME} ports: - - ${KAFKA_MANAGER_LOCAL_PORT}:9000 \ No newline at end of file + - ${KAFKA_MANAGER_LOCAL_PORT}:9000 + + +networks: + gitlink_network: + driver: bridge + name: gitlink_network + driver_opts: + com.docker.network.enable_ipv6: "true" + + + +