是的,你可以通过在 ENTRYPOINT 命令中使用 -Dserver.port=${SERVER_PORT} 的方式来指定 Spring Boot 项目的端口号。这样做需要修改 Dockerfile 中的 ENTRYPOINT 指令:
FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} app.jar
# 设置环境变量 SERVER_PORT,默认为 8080
ENV SERVER_PORT=8080
# 暴露容器端口
EXPOSE $SERVER_PORT
ENTRYPOINT ["java","-Dserver.port=${SERVER_PORT}","-jar","/app.jar"]
这里使用了 ${SERVER_PORT} 占位符,该占位符会被 Docker 容器运行时的环境变量替换掉。
同样地,在构建镜像时也需要通过 --build-arg 参数传递 SERVER_PORT 的值,例如:
docker build -t my-spring-boot-app --build-arg SERVER_PORT=8888 .




