Как изменить свойства приложения файла war в Dockerfile - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть файл jar / war приложения Springboot, в него входит файл application.properties (имеет настройку подключения к базе данных в среде Dev, расположенную в папке src \ main \ resources, я использую источник данных hikari).Теперь я хочу изменить этот файл свойств при создании Dockerfile, чтобы создать образ для среды 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

1 Ответ

1 голос
/ 19 сентября 2019

Измените 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 check this .

...