Nacos 2.2.1版本 docker启动 缺少NACOS_AUTH_TOKEN等配置

4,843 阅读1分钟

获取最新镜像

docker pull nacos/nacos-server

启动容器

docker run --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -p 8848:8848 nacos/nacos-server

此时容器启动不了,报错如下:

nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'NACOS_AUTH_IDENTITY_KEY' in value "${NACOS_AUTH_IDENTITY_KEY}"

原因: 查询 关于Nacos默认token.secret.key及server.identity风险说明及解决方案公告 得知2.2.1版本需要配置NACOS_AUTH_TOKEN、NACOS_AUTH_IDENTITY_KEY以及NACOS_AUTH_IDENTITY_VALUE 这三个属性

NACOS_AUTH_TOKEN配置

可以直接用md5 获取但是单个md5值太短,如果只配了单个的话,启动会被告知 image.png 说白了就是单个md5值太短了,那么我们把NACOS_AUTH_TOKEN设置成2个md5值就好; md5值获取方式:(macos自带命令,没有的自己安装下md5 命令)

md5 filename

NACOS_AUTH_IDENTITY_KEY以及NACOS_AUTH_IDENTITY_VALUE获取方式

通过下图可知NACOS_AUTH_IDENTITY_KEY以及NACOS_AUTH_IDENTITY_VALUE是通过JWT方式自定义生成的:

image.png 通过该jwt秘钥生成可以获取自定义jwt密钥 步骤1:

image.png 设置上图中三个红框中的值

image.png

点击上图的中编码即可获取秘钥,其中NACOS_AUTH_IDENTITY_KEY:yyy(yyy和xxx都可以) ,NACOS_AUTH_IDENTITY_VALUE:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjpbeyJ4eHh4IjoieXl5In1dLCJpYXQiOjE2Nzk1NzU0NzIsImV4cCI6MTY3OTUwMDc5OSwiYXVkIjoiIiwiaXNzIjoiIiwic3ViIjoiIn0.nhN_hKcnjlX0QW-kQj2beLehBzrQnB1IhhJZe2WO-c0

启动命令为:

docker  run -d --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true \
--env NACOS_AUTH_TOKEN=8b92c609089f74db3c5ee04bd7d4d89e8b92c609089f74db3c5ee04bd7d4d89e \
--env NACOS_AUTH_IDENTITY_KEY=xxx \
--env NACOS_AUTH_IDENTITY_VALUE=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjpbeyJ4eHh4IjoieXl5In1dLCJpYXQiOjE2Nzk1NzU0NzIsImV4cCI6MTY3OTUwMDc5OSwiYXVkIjoiIiwiaXNzIjoiIiwic3ViIjoiIn0.nhN_hKcnjlX0QW-kQj2beLehBzrQnB1IhhJZe2WO-c0 \
 -p 8848:8848 nacos/nacos-server