version: "3"
services:
redis:
image: redis:5.0.0
container_name: redis
command: redis-server --requirepass 123456
ports:
- "6379:6379"
volumes:
- ./redis/data:/data
nacos:
image: nacos/nacos-server:latest
container_name: nacos-standalone
environment:
- PREFER_HOST_MODE=hostname
- MODE=standalone
volumes:
- ./nacos/standalone-logs/:/home/nacos/logs
- ./nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties
ports:
- "8848:8848"
prometheus:
container_name: prometheus
image: prom/prometheus:latest
volumes:
- ./prometheus/prometheus-standalone.yaml:/etc/prometheus/prometheus.yml
ports:
- "9090:9090"
depends_on:
- nacos
restart: on-failure
grafana:
container_name: grafana
image: grafana/grafana:latest
ports:
- 3000:3000
restart: on-failure
mysql:
container_name: mysql
image: nacos/nacos-mysql:8.0.16
env_file:
- ./env/mysql.env
volumes:
- ./mysql:/var/lib/mysql
ports:
- "3306:3306"
这里有nacos和mysql8.0的兼容问题,因为之前的管理者选择了阿里云的rds,rds的版本是8.0,所以我这里选择了mysql的8.0,屌丝并花钱不想去买数据库.所以这时就有两个问题,第一个是nacos默认的数据库驱动是mysql5.7版本的,另外一个是mysql8.0默认的事务隔离级别是REPEATABLE-READ ,nacos官方给的解决方案是把数据库驱动更换为8.0兼容的版本,修改mysql的事务模式 SET GLOBAL tx_isolation='READ-COMMITTED';按道理上讲应该可以解决我这里显然是没有解决,所以这里的nacos没有使用mysql作为持久化方案,然后时序数据库是因为文档中有就没有删除掉.