Spring boot Docker运行时-e不起作用。无法在运行命令中传递spring.profiles.active
我的docker文件面临一个问题。映像生成成功,但在运行时出现错误,因为我在run命令中设置的活动配置文件未反映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
# 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
希望有帮助。这对我有帮助。谢谢