Spring boot 如何在Dockerfile中更改war文件的应用程序属性

Spring boot 如何在Dockerfile中更改war文件的应用程序属性,spring-boot,docker,dockerfile,hikaricp,Spring Boot,Docker,Dockerfile,Hikaricp,我有一个Springboot应用程序的jar/war文件,它包括application.properties文件(在Dev环境中有到数据库的连接设置,放在src\main\resources文件夹中,我使用hikari数据源)。现在,我想在创建Dockerfile时修改this属性文件,为UAT环境构建一个映像。我该怎么做 这是我的Dockerfile: FROM openjdk:8 VOLUME /tmp ADD target/springboot-docker-mysql.jar sprin

我有一个Springboot应用程序的jar/war文件,它包括application.properties文件(在Dev环境中有到数据库的连接设置,放在src\main\resources文件夹中,我使用hikari数据源)。现在,我想在创建Dockerfile时修改this属性文件,为UAT环境构建一个映像。我该怎么做

这是我的Dockerfile:

FROM openjdk:8
VOLUME /tmp
ADD target/springboot-docker-mysql.jar springboot-docker-mysql.jar
EXPOSE 8083
ENTRYPOINT ["java","-jar","springboot-docker-mysql.jar"]
这是我的属性文件:

## Spring DATA SOURCE Configurations
#spring.datasource.url = jdbc:mysql://localhost:3306/test?useSSL=false
#spring.datasource.url = jdbc:mysql://mysql-standalone:3306/test?autoReconnect=true&failOverReadOnly=false&maxReconnects=10&useSSL=false
spring.datasource.url = jdbc:mysql://mysql-standalone-p-lggjt-mysql.mysql-standalone-p-lggjt.svc.cluster.local:3306/test?useSSL=false
spring.datasource.username = testuser
spring.datasource.password = testuser@123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver


## Hibernate Properties
# The SQL dialect makes Hibernate generate better SQL for the chosen database
#spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
spring.jpa.database-platform=org.hibernate.dialect.MySQL5Dialect
# Hibernate ddl auto (create, create-drop, validate, update)
spring.jpa.hibernate.ddl-auto = create

spring.jpa.generate-ddl=true
spring.jpa.show-sql=true

server.port=8083

更改您的
Dockerfile

FROM openjdk:8
VOLUME /tmp
WORKDIR /
ADD target/springboot-docker-mysql.jar springboot-docker-mysql.jar
ENTRYPOINT ["java","-jar","springboot-docker-mysql.jar","--spring.config.additional-location=application.properties"]
更改
docker run
命令:

docker run --name my-app --restart always -it -d -p 8083:8083 -v $PWD/application.properties:/application.properties my-app:v1
注意:
$PWD/application.properties
是您的应用程序属性文件,您将其装入容器中的
/application.properties
位置。此外,我们在dockerfile中做了一些细微的更改,并使用
--spring.config.additional location
选项指向application.properties


要了解更多关于
--spring.config.additional location的信息,请检查。

谢谢,我只需要更改Dockerfile和命令“Docker build”即可吗?因为我想创建一个具有新配置的映像,所以我使用Rancher(RKE)部署应用程序(我不使用docker run命令),在这种情况下,您可以静态复制docker映像中的application.peroperties<代码>复制application.properties/application.properties
然后构建docker映像,它将在映像中包含属性文件。如果您还想知道如何在RKE上部署此文件,请发布另一个问题。我可以回答。