nacos

buyfakett

nacos

官方文档open in new window

可以用作微服务的管理,也可以存配置文件

#!/bin/bash

docker kill nacos
docker rm nacos

docker run --name nacos -d \
--net host \
--restart=always \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v $(pwd)/data/:/home/nacos/data/ \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_TOKEN_EXPIRE_SECONDS=86400 \
-e NACOS_AUTH_TOKEN=dnN5T2wxVld4TzdRQjFoekNvMnBnRUxxSUpVRU5kSU4= \
-e NACOS_AUTH_CACHE_ENABLE=false \
-e NACOS_AUTH_IDENTITY_VALUE=vfmY1wdxXfXi0ogB \
-e NACOS_AUTH_IDENTITY_KEY=qYEglRrmYbudPpjd \
-e JVM_XMS=512m \
-e JVM_XMX=512m \
-e MODE=standalone \
nacos/nacos-server:v2.4.1
#!/bin/bash

function install_nacos() {
    mkdir -p /data/app/nacos/
    NACOS_AUTH_TOKEN=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 32)
    NACOS_AUTH_TOKEN_BASE_64=$(echo -n "$NACOS_AUTH_TOKEN" | base64)
    NACOS_AUTH_IDENTITY_VALUE=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 16)
    NACOS_AUTH_IDENTITY_KEY=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 16)
    cat << EOF > /data/app/nacos/setup.sh
#!/bin/bash

docker kill nacos
docker rm nacos
docker run --name nacos -d \\
--net host \\
--restart=always \\
-v /etc/localtime:/etc/localtime:ro \\
-v /etc/timezone:/etc/timezone:ro \\
-v \$(pwd)/data/:/home/nacos/data/ \\
-e NACOS_AUTH_ENABLE=true \\
-e NACOS_AUTH_TOKEN_EXPIRE_SECONDS=86400 \\
-e NACOS_AUTH_CACHE_ENABLE=false \\
-e NACOS_AUTH_TOKEN=${NACOS_AUTH_TOKEN_BASE_64} \\
-e NACOS_AUTH_IDENTITY_VALUE=${NACOS_AUTH_IDENTITY_VALUE} \\
-e NACOS_AUTH_IDENTITY_KEY=${NACOS_AUTH_IDENTITY_KEY} \\
-e JVM_XMS=512m \\
-e JVM_XMX=512m \\
-e MODE=standalone \\
nacos/nacos-server:v2.4.1

sleep 30

# 初始化密码
curl -s -X POST 'http://${NACOS_ADDR}/nacos/v1/auth/users/admin' -d 'username=nacos&password=${NACOS_PASSWORD}'

# 创建命名空间
nacos_accessToken=\$(curl -X POST -s "http://${NACOS_ADDR}/nacos/v1/auth/login" -d "username=nacos&password=${NACOS_PASSWORD}" | grep -o '"accessToken":"[^"]*"' | cut -d':' -f2 | tr -d '"')
curl -s -X POST http://${NACOS_ADDR}/nacos/v1/console/namespaces \\
-H "Authorization: Bearer \${nacos_accessToken}" \\
-d 'customNamespaceId=${NAMESPACE}&namespaceName=${NAMESPACE}&namespaceDesc=${NAMESPACE}'

# ${NACOS_AUTH_TOKEN} base加密
EOF
    chmod +x /data/app/nacos/*.sh
    cd /data/app/nacos/
    /bin/bash /data/app/nacos/setup.sh
}

NACOS_ADDR=192.168.1.1:8848
NACOS_PASSWORD=password
NAMESPACE=test

install_nacos

TIP

NACOS_AUTH_TOKEN参数需要使用openssl rand -base64 32来生成

Last Updated 4/18/2025, 2:23:15 AM