无法将“server.port”下的属性绑定到 java.lang.Integer

Nab*_*bla 12 port docker spring-boot

前段时间我遇到了这样的问题:

Failed to bind properties under 'server.port' to java.lang.Integer:

    Property: server.port
    Value: $PORT
    Origin: "server.port" from property source "systemProperties"
    Reason: failed to convert java.lang.String to java.lang.Integer

Action:

Update your application's configuration

Run Code Online (Sandbox Code Playgroud)

我尝试在 DigitalOcean 中运行我的 docker 容器。我在这里观察到一些类似的主题,并尝试应用建议。例如,我将server.port=${PORT:8080}添加到我的 application.properties 但它对我不起作用。

这是我的 docker 运行命令:

docker run -p 8080:8080 --name nostalgia --env-file vars.txt --rm -it registry.digitalocean.com/alex-registry/nostalgia
Run Code Online (Sandbox Code Playgroud)

这是我的 vars.txt (目前只有一个变量):

PORT=8080
Run Code Online (Sandbox Code Playgroud)

另外我应该说我尝试了另一种形式的命令:

docker run -p 8080:8080 --name nostalgia -e PORT=8080 --rm -it registry.digitalocean.com/alex-registry/nostalgia
Run Code Online (Sandbox Code Playgroud)

但结果是一样的。接下来我应该做什么来克服这个问题并成功启动容器?感谢您的回答!

小智 0

您使用 docker env 文件(字符串)覆盖您的 server.port(Int)。只需将应用程序属性设置为 server.port=8080 并从 docker 命令中删除 env 文件即可。

如果您需要不同的端口配置,可以执行以下操作之一:

  • 处理多个 application.property 文件
  • 直接在 docker 命令中覆盖 spring boot tomcat 属性:-e SERVER_PORT=8080