要在 Docker 中动态指定 Spring Boot 项目的 SERVER_PORT,可以使用环境变量来实现。以下是一些步骤:
- 在 Spring Boot 项目中修改 application.properties 或 application.yml 文件,在其中添加如下代码:
server.port=${SERVER_PORT:8080}
这里使用了 ${SERVER_PORT:8080} 语法,意思是从环境变量 SERVER_PORT 中获取端口号,如果没有设置,则默认为 8080。
- 构建 Docker 镜像时,在 Dockerfile 中添加如下代码:
ARG SERVER_PORT
ENV SERVER_PORT=$SERVER_PORT
EXPOSE $SERVER_PORT
这里使用了 ARG 和 ENV 指令来定义一个名为 SERVER_PORT 的构建参数和运行时环境变量,并将其暴露到容器外部。
- 在启动容器时,使用 -e 或 –env 参数来设置 SERVER_PORT 环境变量的值。例如:
docker run -p 8080:8080 -e SERVER_PORT=8888 my-image
这里将容器内部的 SERVER_PORT 设置为 8888,并将容器的端口映射到主机的 8080 端口。
- 启动容器后,您可以通过访问 http://localhost:8080(或其他指定的端口) 来测试应用程序是否能够正常工作。
请注意,上述方法也适用于其他需要在运行时指定参数的情况。您只需要在应用程序中使用正确的语法来引用环境变量,并在 Dockerfile 中定义和暴露它们即可。




