lilishop-docker/docker-compose.yml

150 lines
4.0 KiB
YAML

version: '3'
services:
mysql:
image: mysql:8.0.25
restart: always
container_name: mysql
volumes:
- ../volumes/data/mysqldata:/var/lib/mysql
- ./config/my.cnf:/etc/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:6.2.5
restart: always
container_name: 'redis'
ports:
- 6379:6379
volumes:
- ../volumes/data/redsidata:/data
command: redis-server --port 6379 --requirepass lilishop --appendonly yes
elasticsearch:
image: elasticsearch:7.3.0
restart: always
container_name: elasticsearch
volumes:
- ../volumes/data/es7/logs:/usr/share/es7/logs:rw
- ../volumes/data/es7/data:/usr/share/es7/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
logging:
driver: "json-file"
options:
max-size: "50m"
networks:
- stack
ulimits:
nofile:
soft: 65535
hard: 65535
kibana:
image: docker.elastic.co/kibana/kibana:7.3.0
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.3.0
restart: always
container_name: logstash
volumes:
- ./config/logstash-springboot.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
- ./config/lili_goods.json:/usr/share/logstash/templates/lili_goods.json
networks:
- stack
depends_on: ['elasticsearch']
ports:
- 4560:4560
# rocket mq name server
rmqnamesrv:
image: foxiswho/rocketmq:server-4.7.0
restart: always
container_name: rocket-server
environment:
JAVA_OPT_EXT: "-server -Xms64m -Xmx64m -Xmn64m"
volumes:
- ../volumes/data/rocket/server/logs:/opt/logs
- ../volumes/data/rocket/server/store:/opt/rmqstore
networks:
- rocketmq
ports:
- 9876:9876
# rocket mq broker
rmqbroker:
image: foxiswho/rocketmq:broker-4.7.0
restart: always
container_name: rocket-broker
volumes:
- ../volumes/data/rocket/broker/logs:/opt/logs
- ../volumes/data/rocket/broker/store:/opt/rmqstore
- ./config/broker.conf:/etc/rocketmq/broker.conf
environment:
- NAMESRV_ADDR=rmqnamesrv:9876
- JAVA_OPTS:=-Duser.home=/opt
- JAVA_OPT_EXT=-server -Xms64m -Xmx64m -Xmn64m
command: mqbroker -c /etc/rocketmq/broker.conf
depends_on:
- rmqnamesrv
networks:
- rocketmq
ports:
- 10909:10909
- 10911:10911
# rocket console 这个可以不需要
rmqconsole:
image: styletang/rocketmq-console-ng:latest
restart: always
container_name: rocket-console
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
network_mode: host
environment:
- PARAMS=--spring.datasource.url=jdbc:mysql://127.0.0.1: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