spring cloud bootstrap.yml 设置nacos环境变量

spring cloud bootstrap.yml 设置nacos环境变量

需求是有多台服务器,每次打包都要修改 bootstrap.yml 的ip地址和命名空间等 比较麻烦,所以就设置一个环境变量一劳永逸

技术交流博客 http://idea.coderyj.com/

1. spring cloud bootstrap.yml 设置变量

yml 复制代码
custom-nacos:
  ip: ${NACOS_SERVER_IP:172.16.1.113}
  port: ${NACOS_SERVER_PORT:8848}
  namespace: ${NACOS_APP_NAMESPACE:nacos-robot-web}
  username: ${NACOS_AUTH_USERNAME:nacos}
  password: ${NACOS_AUTH_PASSWORD:nacos}

spring:
  application:
    name: nacos-web
  cloud:
    nacos:
      discovery:
        server-addr: ${custom-nacos.ip}:${custom-nacos.port}
        namespace: ${custom-nacos.namespace}
        username: ${custom-nacos.username}
        password: ${custom-nacos.password}
      #配置中心设置
      config:
        #设置配置中心服务端地址
        server-addr: ${custom-nacos.ip}:${custom-nacos.port}
        namespace: ${custom-nacos.namespace}
        file-extension: yaml
        group: DEFAULT_GROUP
        refresh-enabled: true
        extension-configs[0]:
          data-id: common.yaml
          group: DEFAULT_GROUP
          refresh-enabled: true
        username: ${custom-nacos.username}
        password: ${custom-nacos.password}
        
  # 上传文件大小设置
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
  • ip: ${NACOS_SERVER_IP:172.16.1.113}
  • port: ${NACOS_SERVER_PORT:8848}
  • namespace: ${NACOS_APP_NAMESPACE:nacos-robot-web}
  • username: ${NACOS_AUTH_USERNAME:nacos}
  • password: ${NACOS_AUTH_PASSWORD:nacos}

1.docker-compose 文件设置

java 复制代码
version: '2'
services:
  web:
    image: "nacos-web"
    networks:
      - overlay_net
    ports:
      - "8182:8182"
    restart: always
    environment:
      - TZ=Asia/Shanghai
      - JAVA_OPTS=-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC
    container_name: nacos-web
    env_file:
      - ./custom-application-config.env
    volumes:
      - /data/ftp/root:/home
networks:
  overlay_net:

env_file:

  • ./custom-application-config.env
  • env 文件
java 复制代码
NACOS_SERVER_IP=172.16.1.113
NACOS_SERVER_PORT=8848
NACOS_APP_NAMESPACE=nacos-robot-web
NACOS_AUTH_USERNAME=nacos
NACOS_AUTH_PASSWORD=nacos

2.在Dockerfile设置环境变量

复制代码
FROM openjdk:8
# 将当前目录下的*.jar添加到镜像中去,并且命名为app.jar
ADD target/track-web-exe.jar app.jar
# 开放tcp端口
EXPOSE 	8182/tcp
ENV LANG C.UTF-8
ENV NACOS_SERVER_IP=172.16.1.113
ENV NACOS_SERVER_PORT=8848
NACOS_APP_NAMESPACE=nacos-robot-web
NACOS_AUTH_USERNAME=nacos
NACOS_AUTH_PASSWORD=nacos
# copy 修改启动配置文件
#COPY src/main/resources/bootstrap.yml ./config/bootstrap.yml
# 把字体拷贝到docker容器里面
COPY src/main/resources/fonts/simsun.ttc /usr/share/fonts/
# 镜像启动的时候执行这个命令
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar

3.重置配置文件

复制代码
FROM openjdk:8
# 将当前目录下的*.jar添加到镜像中去,并且命名为app.jar
ADD target/track-web-exe.jar app.jar
# 开放tcp端口
EXPOSE 	8182/tcp
ENV LANG C.UTF-8
# copy 修改启动配置文件
COPY src/main/resources/bootstrap.yml ./config/bootstrap.yml
# 把字体拷贝到docker容器里面
COPY src/main/resources/fonts/simsun.ttc /usr/share/fonts/
# 镜像启动的时候执行这个命令
CMD exec java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /app.jar
  • COPY src/main/resources/bootstrap.yml ./config/bootstrap.yml
  • 将 bootstrap.yml 拷贝到服务器上进行镜像打包即可
  • 镜像打包命令 docker-build -t track-web .
相关推荐
骑着蜗牛撵大象3272 小时前
2026 后端 AI 工程化:Spring AI 管调用、MCP 管工具、Agent 内嵌管自治
java·人工智能·后端·spring·ai·可观测性·mcp
揣一尾游鱼yu3 小时前
Spring上(IOC)笔记
java·笔记·spring·ioc
todoitbo6 小时前
MongoDB迁移之后,Spring Data 和 Hibernate 各自接哪类请求
大数据·数据库·mongodb·spring·hibernate·金仓数据库
Flynn Liang10 小时前
Spring AI 多模态实战(下):文生图 + TTS 语音合成(含 2.0 流式音频分片)
人工智能·spring·文生图·音视频·语音合成·tts·springai
步行cgn10 小时前
Spring MVC 执行流程详解:一次请求的完整旅程
java·spring·mvc
步行cgn10 小时前
Spring MVC 九大核心角色详解:请求处理链路中的每一个关键组件
java·spring·mvc
Félix25111 小时前
Nacos学习笔记(SpringBoot/SpringCloud)
java·spring boot·spring
七夜zippoe11 小时前
LangChain4j vs Spring AI:Java AI 框架怎么选(对比表)
java·人工智能·spring·ai·langchain4j
2501_9339232512 小时前
SpringCloud:OpenFeign快速实现
java·后端·spring cloud·openfeign
Flynn Liang13 小时前
让 AI 查订单、查库存、发消息:Spring AI 自定义工具(Tool)实战与工具描述工程
java·人工智能·spring·函数调用·springai·tool·自定义工具