ANP*_*ANP 5 docker spring-boot spring-boot-docker-plugin
我的 docker 文件面临一个问题。图像构建成功,但在运行时出现错误,因为我在运行命令中设置的活动配置文件没有反映。
# 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 Code Online (Sandbox Code Playgroud)
我的运行命令是这样的
sudo docker run -e SPRING_PROFILES_ACTIVE=dev -p 8088:80 -t tws-apps/service:1.0.0-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)
执行此语句时,我在服务器日志中收到空指针异常
String environment = System.getProperty("spring.profiles.active");
switch (environment) {
Run Code Online (Sandbox Code Playgroud)
请帮忙
您将其SPRING_PROFILES_ACTIVE
作为系统环境变量传递给 docker 容器。您应该将其作为Java 系统属性传递。解决方案是通过覆盖入口点来运行容器:
docker run --entrypoint java -t tws-apps/service:1.0.0-SNAPSHOT -Dspring.profiles.active=dev -jar app.jar
Run Code Online (Sandbox Code Playgroud)
或者,在您Dockerfile
更改入口点。它可能是一个读取SPRING_PROFILES_ACTIVE
环境变量然后使用 var 作为系统属性运行 Java 的脚本。
希望能帮助到你。
归档时间: |
|
查看次数: |
3686 次 |
最近记录: |