Java 访问docker compose文件中的Spring引导应用程序属性
我有两个应用程序,一个是API应用程序,另一个是UI(UI依赖于API_门户),我没有将db容器化 docker_编写文件Java 访问docker compose文件中的Spring引导应用程序属性,java,spring-boot,docker,docker-compose,Java,Spring Boot,Docker,Docker Compose,我有两个应用程序,一个是API应用程序,另一个是UI(UI依赖于API_门户),我没有将db容器化 docker_编写文件 version: "3" services: ui_application: image: ui_app build: context: ./ui_app dockerfile: Dockerfile ports: - "8080:8080" depends_on: - admin_port
version: "3"
services:
ui_application:
image: ui_app
build:
context: ./ui_app
dockerfile: Dockerfile
ports:
- "8080:8080"
depends_on:
- admin_portal_app
admin_portal_app:
image: admin_portal
build:
context: ./admin_app
dockerfile: Dockerfile
volumes:
- ./logs:/logs
Dockerfile
来自openjdk:8-jdk-alpine
添加target/.war admin\u portal.war
入口点[“Java”、“-jar”、“admin\u portal.war”]
Dockerfile
来自openjdk:8-jdk-alpine
添加target/.war ui\u app.war
入口点[“Java”、“-jar”、“ui_app.war”]
我想在docker compose文件中外部化所有应用程序属性。请指导我如果我正确理解了要求,您想通过docker compose注入spring属性 您可以利用env变量实现同样的功能。 请执行以下操作:
java\
-Xmx$Xmx_值\
-XX:MaxMetaspaceSize=$MAX\u METASPACE\u SIZE\
-XX:+HEAPDUMPONAUTOFMEMORYERROR\
-XX:HeapDumpPath=$HEAP\u DUMP\u PATH\
-Dspring.datasource.url=$DB\u URI\
-Dspring.datasource.username=$DB\u username\
-Dspring.datasource.password=$DB\u password\
-jar
admin\u门户\u应用程序:
图片:admin_门户
建造:
上下文:./admin\u应用程序
dockerfile:dockerfile
卷数:
-/日志:/logs
环境:
-DB_URI=
-DB_用户名=
-DB_密码=
java \-Xmx$Xmx\u VALUE \-XX:MaxMetaspaceSize=$MAX\u METASPACE\u SIZE \-XX:+heapdumponAutofmemoryError \-XX:HeapDumpPath=$HEAP\u DUMP\u PATH \-Dspring.datasource.url=$DB\u URI \-Dspring.datasource.username=$DB\u username \-Dspring.datasource.password=$DB\u password \-jar
我必须放入docker文件并用docker文件运行它从openjdk:8-jdk-alpine ADD target/.war admin_portal.war ENTRYPOINT[“Java”、“-jar”、“admin_portal.war”]让我们假设我有4个数据源,那么如何添加它们是允许的。origin=8080如何将此属性外部化到docker compose文件1。在包含docker-compose.yaml 2的同一文件夹中创建.env文件。在docker compose中使用ALLOWED\u origin=8080
更新文件,使用变量:environment:
`-ALLOWED.origin=${ALLOWED\u origin}`阅读此文件以了解更多详细信息:
application.properties(Admin Portal API)
spring.datasource.url = jdbc:mysql://mysql-standalone:3306/test
spring.datasource.username = xxx
spring.datasource.password = xxx
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
server.port=8090
logging.file=./logs/adminportal.log