lilishop-docker/docker-compose.yml

150 lines
4.1 KiB
YAML

version: '3'
services:
mysql:
image: mysql:8.0.30
restart: always
container_name: mysql
volumes:
- ../volumes/data/mysqldata:/var/lib/mysql
- ./config/my.cnf:/etc/mysql/conf.d/my.cnf
# 数据库还原目录 可将需要还原的sql文件放在这里
- ./init/mysql:/docker-entrypoint-initdb.d
environment:
- "MYSQL_ROOT_PASSWORD=lilishop"
- "MYSQL_DATABASE=lilishop"
- "TZ=Asia/Shanghai"
ports:
- 3306:3306
redis:
image: redis:7.0.4
restart: always
container_name: 'redis'
ports:
- 6379:6379
volumes:
- ../volumes/data/redsidata:/data
command: redis-server --port 6379 --requirepass lilishop --appendonly yes --protected-mode no
elasticsearch:
image: elasticsearch:7.17.6
restart: always
container_name: elasticsearch
volumes:
# 映射本地目录权限一定要设置为 777 权限,否则启动不成功
# - ../volumes/data/es7/logs:/usr/share/elasticsearch/logs:rw
# - ../volumes/data/es7/data:/usr/share/elasticsearch/data:rw
- ./config/ik:/usr/share/elasticsearch/plugins/ik
# - "./elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml"
ports:
- "9200:9200"
- "9300:9300"
environment:
- cluster.name=elasticsearch
- discovery.type=single-node
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
logging:
driver: "json-file"
options:
max-size: "50m"
networks:
- stack
ulimits:
nofile:
soft: 65535
hard: 65535
kibana:
image: docker.elastic.co/kibana/kibana:7.17.6
restart: always
container_name: kibana
ports:
- 5601:5601
# volumes:
# - "./config/kibana.yml:/usr/share/kibana/config/kibana.yml"
networks:
- stack
depends_on: ['elasticsearch']
logstash:
image: logstash:7.17.6
restart: always
container_name: logstash
volumes:
- ./config/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
networks:
- stack
depends_on: ['elasticsearch']
ports:
- 4560:4560
# rocket mq name server
rmqnamesrv:
image: apache/rocketmq:4.9.4
restart: always
container_name: rocket-server
# environment:
# JAVA_OPT_EXT: "-server -Xms64m -Xmx64m -Xmn64m"
volumes:
- ../volumes/data/rocket/server/logs:/home/rocketmq/logs
networks:
- rocketmq
ports:
- 9876:9876
command: sh mqnamesrv
# rocket mq broker
rmqbroker:
image: apache/rocketmq:4.9.4
restart: always
container_name: rocket-broker
volumes:
- ../volumes/data/rocket/broker/logs:/home/rocketmq/logs
- ../volumes/data/rocket/broker/store:/home/rocketmq/store
- ./config/broker.conf:/opt/rocketmq-4.9.4/conf/broker.conf
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
# - JAVA_OPTS:=-Duser.home=/opt
- JAVA_OPT_EXT=-server -Xms64m -Xmx64m -Xmn64m
depends_on:
- rmqnamesrv
networks:
- rocketmq
ports:
- 10909:10909
- 10911:10911
command: sh mqbroker -c /opt/rocketmq-4.9.4/conf/broker.conf
# rocket console 这个可以不需要
rmqdashboard:
image: apacherocketmq/rocketmq-dashboard:1.0.0
restart: always
container_name: rocket-dashboard
environment:
- JAVA_OPTS=-Drocketmq.config.namesrvAddr=rmqnamesrv:9876 -Dserver.port=8180 -Drocketmq.config.isVIPChannel=false
# - JAVA_OPT_EXT=-Xms128m -Xmx128m -Xmn128m
depends_on:
- rmqnamesrv
networks:
- rocketmq
ports:
- 8180:8180
# xxl-job 分布式调度中心
xxl-job:
image: xuxueli/xxl-job-admin:2.3.0
restart: always
container_name: xxl-job
environment:
- PARAMS=--spring.datasource.url=jdbc:mysql://mysql:3306/lilishop?Unicode=true&characterEncoding=UTF-8 --spring.datasource.username=root --spring.datasource.password=lilishop --server.port=9001
depends_on:
- mysql
volumes:
- ../volumes/data/xxl-job:/data/applogs
ports:
- 9001:9001
networks:
rocketmq:
driver: bridge
stack:
driver: bridge