У меня есть Java-приложение Springboot с Gradle и некоторыми переменными среды в application.yml:
spring:
profiles: development
server:
port: 3100
database:
connectionString: mongodb://localhost:27017
---
spring:
profiles: production
server:
port: 80
database:
connectionString: prodCS
Мой dockerfile:
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Dspring.profiles.active=development","-jar","/app.jar"]
Я пытаюсь запустить Docker локально, но моя среда возвращает нулевые свойства
@Configuration
public class MongoUtilities {
@Resource
public Environment env;
private static String mongoUri;
@Bean
public static PropertySourcesPlaceholderConfigurer propertyPlaceHolderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
@Bean
public boolean ReadConnectionString() {
mongoUri = env.getProperty("database.connectionString");
System.out.println("Loaded connection Uri : " + mongoUri);
return true;
}
}
Раньше у меня были проблемы с нулевой переменной среды, но мне удалось это исправить. Теперь он отлично работает в intellij с флагом --spring.profiles.active=development
Я строю, используя gradlew build docker
, и запускаю Docker, используя docker run springio/my-app
Это все довольно стандартно, я только начинающий в этой области.
Есть идеи?