docker 如何通过yml文件动态传参改变 所有容器中的配置文件

RT .

目前袋盖有八个项目 ,都是springboot项目

项目之前的服务是相互调用的 我想要达到的效果就是通过动态传参 改变服务的配置

如application.properties文件中的 如下
大概有八个文件都是这样写的

service.url=https://10.0.0.200/ids/proc

希望在容器启动的时候 通过environment 动态改变容器内的参数值 请问怎么做

阅读 3.2k
2 个回答

配置文件如下即可

version: "3.9"
services:
  app:
    image: my_app_image
    environment:
      APP_PORT: 8080
      DB_HOST: db
      DB_PORT: 3306
    volumes:
      - ./app_config:/app/config
  db:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - ./db_data:/var/lib/mysql

这个简单,在springboot中创建多个配置文件,如bootstrap-dev.properties,bootstrap-test.properties, 编辑dockerfile添加一个环境变量ENV profileActive=$RUN_ENV,最后启动容器时指定生效的配置CMD java -Xms128m -Xmx356m -jar app.war --spring.profiles.active=$profileActive即可,如指定变量RUN_EVN=dev则生效的配置文件是bootstrap-dev.properties。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题