Spring boot Docker运行时-e不起作用。无法在运行命令中传递spring.profiles.active

Spring boot Docker运行时-e不起作用。无法在运行命令中传递spring.profiles.active,spring-boot,docker,spring-boot-docker-plugin,Spring Boot,Docker,Spring Boot Docker Plugin,我的docker文件面临一个问题。映像生成成功,但在运行时出现错误,因为我在run命令中设置的活动配置文件未反映 # 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"] 我的run命令类似于 sudo docker run -e SPR

我的docker文件面临一个问题。映像生成成功,但在运行时出现错误,因为我在run命令中设置的活动配置文件未反映

# 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"]
我的run命令类似于

sudo docker run -e SPRING_PROFILES_ACTIVE=dev  -p 8088:80  -t tws-apps/service:1.0.0-SNAPSHOT
执行此语句时,服务器日志中出现空指针异常

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

请帮助

SPRING\u PROFILES\u ACTIVE
作为系统环境变量传递给docker容器。你应该把它作为一个考试通过。解决方案是通过覆盖入口点来运行容器:

docker run --entrypoint java -t tws-apps/service:1.0.0-SNAPSHOT -Dspring.profiles.active=dev -jar app.jar
或者,在
Dockerfile
中更改入口点。它可以是一个脚本,读取
SPRING\u PROFILES\u ACTIVE
环境变量,然后将var作为系统属性运行Java


希望有帮助。

这对我有帮助。谢谢