5

I am facing one issue with my docker file.Image build was successful but while running I am getting an error because the active profile I am setting in the run command is not reflecting.

# Get java
FROM openjdk:8-jdk-alpine


VOLUME /tmp
ARG JAR
COPY ${JAR} app.jar

EXPOSE 8080
ENV severn_js_key=1234qasw

ENTRYPOINT ["java", "-jar", "app.jar"]

My run command is like

sudo docker run -e SPRING_PROFILES_ACTIVE=dev  -p 8088:80  -t tws-apps/service:1.0.0-SNAPSHOT

I am getting a null pointer exception in the server log while executing this statement

String environment = System.getProperty("spring.profiles.active");
switch (environment) {

Please help

grapes
  • 8,185
  • 1
  • 19
  • 31
Anoop M Nair
  • 1,057
  • 1
  • 13
  • 31

1 Answers1

1

You pass the SPRING_PROFILES_ACTIVE to the docker container as a system environment variable. You should pass it as a Java System Property instead. A solution would be to run the container by overriding the entrypoint:

docker run --entrypoint java -t tws-apps/service:1.0.0-SNAPSHOT -Dspring.profiles.active=dev -jar app.jar

In alternative, in your Dockerfile change the entrypoint. It could be a script that reads the SPRING_PROFILES_ACTIVE environment variable and then runs Java with the var as a system property.

Hope it helps.

b0gusb
  • 4,283
  • 2
  • 14
  • 33