禅道
services:
zentao-db:
image: mysql:8.0
container_name: zentao-mysql
environment:
MYSQL_ROOT_PASSWORD: "root" # 建议修改为复杂密码
MYSQL_DATABASE: "zentao"
TZ: "Asia/Shanghai"
volumes:
- zentao_mysql_data:/var/lib/mysql # MySQL数据持久化
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
interval: 5s
timeout: 10s
retries: 10
zentao:
image: hub.zentao.net/app/zentao:latest
container_name: zentao
depends_on:
zentao-db:
condition: service_healthy
ports:
- "12000:80" # 访问端口
environment:
ZT_MYSQL_HOST: "zentao-db" # 指向MySQL容器
ZT_MYSQL_USER: "root"
ZT_MYSQL_PASSWORD: "root" # 与上方root密码一致
ZT_MYSQL_DB: "zentao"
TZ: "Asia/Shanghai"
volumes:
- zentao_app_data:/data # 禅道数据持久化
restart: unless-stopped
volumes:
zentao_mysql_data: # MySQL数据卷
zentao_app_data: # 禅道应用数据卷
Kafka
services:
zookepper:
image: wurstmeister/zookeeper # 原镜像`wurstmeister/zookeeper`
container_name: zookeeper # 容器名为'zookeeper'
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "/etc/localtime:/etc/localtime"
ports: # 映射端口
- "2181:2181"
kafka:
image: wurstmeister/kafka # 原镜像`wurstmeister/kafka`
container_name: kafka # 容器名为'kafka'
volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- "/etc/localtime:/etc/localtime"
environment: # 设置环境变量,相当于docker run命令中的-e
KAFKA_BROKER_ID: 0 # 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 # TODO 将kafka的地址端口注册给zookeeper
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # 配置kafka的监听端口
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 # zookeeper地址
ports: # 映射端口
- "9092:9092"
depends_on: # 解决容器依赖启动先后问题
- zookepper
kafka-manager:
image: sheepkiller/kafka-manager # 原镜像`sheepkiller/kafka-manager`
container_name: kafka-manager # 容器名为'kafka-manager'
environment: # 设置环境变量,相当于docker run命令中的-e
ZK_HOSTS: zookeeper:2181 # zookeeper地址
APPLICATION_SECRET: xxxxx
KAFKA_MANAGER_AUTH_ENABLED: "true" # 开启kafka-manager权限校验
KAFKA_MANAGER_USERNAME: admin # 登陆账户
KAFKA_MANAGER_PASSWORD: 123456 # 登陆密码
ports: # 映射端口
- "9000:9000"
depends_on: # 解决容器依赖启动先后问题
- kafka