我试图告诉Spring从jar之外的文件中添加属性。
https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-application-property-files
我有 docker 撰写文件,在其中我为Spring启动应用程序定义环境变量。
sample-service:
build:
context: "./sample-service/app"
dockerfile: Dockerfile
container_name: sample-service
restart: always
mem_limit: 400000000
env_file: .env
environment:
- "SPRING_PROFILE=dev"
- "APPLICATION_NAME=sample-service"
- "SPRING_CONFIG_ADDITIONAL-LOCATION=file:/app/sample-service-config.yml"
- "JAVA_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5006"
ports:
- 5006:5006
当我在调试器中时,我执行自定义代码。
System.getenv("SPRING_PROFILE")
它返回开发
。当我跑步时
System.getenv("APPLICATION_NAME")
它返回sample-service
。当我运行时
System.getenv("SPRING_CONFIG_ADDITIONAL-LOCATION")
它返回null
。
更新
有人建议docker不支持连字符https://github.com/docker/compose/issues/2370
这太疯狂了...
我更改了启动此Java应用程序的Dockerfile,因此现在可以将其他配置位置作为命令行参数传递。我还添加了bash脚本来启动我的Java应用程序。
Dockerfile文件
ENTRYPOINT ./startJavaApp.sh
启动JavaApp.sh
java -XX:+UseContainerSupport $JAVA_OPTIONS -jar ../sample-service.jar --spring.config.additional-location=file:/app/sample-service-config.yml
看起来将其作为命令行参数传递确实有效。
您还可以使用以下格式:
env_file: .env
environment:
- SPRING_PROFILE=dev
- APPLICATION_NAME=sample-service
- SPRING_CONFIG_ADDITIONAL-LOCATION="file:/app/sample-service-config.yml"
- JAVA_OPTIONS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5006"
REFERENCE-docker compose的环境变量
我想把9093暴露在码头集装箱外面。当我如下设置暴露于9093的kafka-0端口和KAFKA_ADVERTISED_LISTENERS时,我无法连接到localhost:9093,如以下docker-compose文件所示。 但是,当我换成 和 我可以连接到Kafka经纪人localhost:9092。 如何将外部端口更改为9093以使应用程序连接?我想设置多个经纪商。
对于我的Spring Boot应用程序,我试图使用一个环境变量来保存中的列表(请参见下面的配置)。 我使用配置文件来填充properties bean(参见本spring文档),如下所示 通过使用环境变量,我可以在不更改的情况下更改列表的内容。然而,到目前为止,我所能找到的所有示例都只适用于环境变量只包含单个值,而不是我的示例中的值集合的情况。 编辑: 为了在@vancleff的评论之后澄清,我不
我有一个Spring Boot应用程序,它与DB交互,使用spring data REST提供资源。我想从环境变量中获得配置。下面是我的属性文件。 我的环境变量在图像https://ibb.co/cyxsnc中 我甚至还尝试了下面的配置 注意:如果设置如下所示的值,配置工作正常 我错过了什么?
如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任意位置执行 MySQL 命令了,本节主要介绍怎样手动配置环境变量。 MySQL 如果不配置环境变量就只能在 my
类型: Object Nuxt.js 让你可以配置在客户端和服务端共享的环境变量。 例如 (nuxt.config.js): module.exports = { env: { baseUrl: process.env.BASE_URL || 'http://localhost:3000' } } 以上配置我们创建了一个 baseUrl 环境变量,如果应用设定了 BASE_URL
问题内容: 我正在通过Docker映像运行Jenkins。 我希望我的Jenkins安装程序提供一些预先配置的环境变量。 有什么方法可以复制一些环境变量,以便在启动詹金斯时,这些变量应该与这些预先配置的环境变量一起提供? TIA。 问题答案: 可用环境变量的列表位于此处:https : //hub.docker.com/_/jenkins/ 更新资料 如果要添加自己的环境变量,则需要构建自己的je