【Spring-Cloud】nacos的docker-compose部署

以前nacos是用的脚本工具部署的,感觉不太好管理,今天把它改成docker-compose的方式,这样管理起来就方便啦。

准备

  1. Ubuntu 18.04.3 LTS
  2. nacos 2.0.2
  3. docker-compose version 1.29.2

开始操作

以下为操作步骤,读者可直接移步https://github.com/nacos-group/nacos-docker查阅官方详细介绍。

  1. 编写docker-compose.yaml,要记得将项目中对应挂载的目录粘贴到指定位置。
version: "2"
services:
  nacos:
    image: nacos/nacos-server:${NACOS_VERSION}
    container_name: nacos-standalone
    environment:
    - PREFER_HOST_MODE=${PREFER_HOST_MODE}
    - MODE=${MODE}
    - SPRING_DATASOURCE_PLATFORM=${SPRING_DATASOURCE_PLATFORM}
    - MYSQL_SERVICE_HOST=${MYSQL_SERVICE_HOST}
    - MYSQL_SERVICE_DB_NAME=${MYSQL_SERVICE_DB_NAME}
    - MYSQL_SERVICE_USER=${MYSQL_SERVICE_USER}
    - MYSQL_SERVICE_PASSWORD=${MYSQL_SERVICE_PASSWORD}
    - MYSQL_SERVICE_DB_PARAM=${MYSQL_SERVICE_DB_PARAM}
    volumes:
    - ./standalone-logs/:/home/nacos/logs
    - ./init.d/custom.properties:/home/nacos/init.d/custom.properties
    ports:
    - "8848:8848"
    - "9848:9848"
    restart: on-failure
  1. 配置参数.env
NACOS_VERSION=2.0.2
MYSQL_SERVICE_HOST=127.0.0.1
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_DB_NAME=nacos_db
MYSQL_SERVICE_USER=nacos
MYSQL_SERVICE_PASSWORD=nacos123
# 使用mysql8.0需要配置allowPublicKeyRetrieval=true
MYSQL_SERVICE_DB_PARAM=allowPublicKeyRetrieval=true&characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8
  1. 启动
docker-compose up -d

问题排查过程

排查过程我以自己遇到的来进行举例。

  1. 查看容器日志
docker-compose logs -f --tail 111 nacos

在这里插入图片描述

  1. 从容器日志里面可以看到是数据库配置的问题,但是没有详细日志,我们还是无法定位到问题,但是我们可以注意到项目启动的时候会有如下提示:
    【Spring-Cloud】nacos的docker-compose部署_第1张图片
    让我们可以去如下位置查看项目日志,由docker-compose配置找到对应的挂载位置进行查看,里面有很多日志文件都不认识,但是有一个肯定是首要排查的对象nacos.log
less nacos.log

【Spring-Cloud】nacos的docker-compose部署_第2张图片
嘿嘿,被抓到了,可以看到Public Key Retrieval is not allowed这个就是罪魁祸首,我们先去度娘找一下答案:
【Spring-Cloud】nacos的docker-compose部署_第3张图片
看来大家也都遇到过这个问题,让我们配置上试试看:
【Spring-Cloud】nacos的docker-compose部署_第4张图片
启动成功。可喜可贺!

以上提供一种思路,因为nacos有些日志不会在docker logs中打印,我们需要去查看详细日志。

你可能感兴趣的:(spring-cloud,docker,spring,java)