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

本文介绍了如何在SpringCloud应用中通过设置环境变量,如NACOS_SERVER_IP、NACOS_SERVER_PORT等,避免频繁修改bootstrap.yml中的IP地址和命名空间,以实现多台服务器部署时的一劳永逸。同时,还展示了如何在Docker和Dockerfile中管理这些环境变量以支持自动化部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring cloud bootstrap.yml 设置nacos环境变量
需求是有多台服务器,每次打包都要修改 bootstrap.yml 的ip地址和命名空间等 比较麻烦,所以就设置一个环境变量一劳永逸
技术交流博客 http://idea.coderyj.com/

1. spring cloud bootstrap.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 文件设置

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 文件
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 .
Bootstrap.yml文件在Spring Cloud Nacos中主要用于配置应用如何连接到Nacos服务器。如果你想实现实时的动态刷新功能,通常是在服务发现和配置中心方面进行设置。以下是基本步骤: 1. **添加依赖**: 在你的`pom.xml`或`build.gradle`中添加Spring Cloud Nacos相关的依赖: ```xml <!-- Maven --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- Gradle --> implementation 'org.springframework.cloud:spring-cloud-starter-alibaba-nacos-discovery' ``` 2. **配置客户端**: 在`bootstrap.yml`中配置Nacos客户端,包括`spring.application.name`、`server.port`以及Nacos地址和端口。添加一个`refresh`属性用于启用动态刷新: ```yaml spring: cloud: nacos: discovery: server-addr: [NACOS_SERVER_IP]:[NACOS_SERVER_PORT] refresh: true ``` 其中`[NACOS_SERVER_IP]` 和 `[NACOS_SERVER_PORT]`替换为实际的Nacos服务器IP和端口号。 3. **刷新频率控制**: 如果需要自定义刷新间隔,可以在`bootstrap.yml`中指定`refreshIntervalSeconds`,例如: ```yaml spring: cloud: nacos: discovery: refreshIntervalSeconds: 5 # 每5秒检查一次新的配置变化 ``` 4. **启用自动服务实例注册与健康检查**: 确保开启了自动注册服务到Nacos的功能,这通常是通过`@EnableDiscoveryClient`注解在启动类上完成的。 当你修改了Nacos上的配置,只要满足上述配置并重启应用,Spring Cloud Nacos会定期从Nacos获取最新的配置,并更新本地应用的配置。但是注意,不是所有配置变更都会立即生效,因为刷新间隔有限制,如果配置更改非常频繁,可能需要微调刷新策略。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值