docker-compose 安装java开发环境

329 阅读1分钟
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作为持久化方案,然后时序数据库是因为文档中有就没有删除掉.