欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > docker部署springboot(eureka server)项目

docker部署springboot(eureka server)项目

2025/4/24 0:04:39 来源:https://blog.csdn.net/qq_37365741/article/details/147341844  浏览:    关键词:docker部署springboot(eureka server)项目

打jar包

使用maven:

<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>17</source><target>17</target><encoding>UTF-8</encoding></configuration></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

打开idea右侧的 Maven 工具窗口(View → Tool Windows → Maven)双击 package 目标
在这里插入图片描述
生成的jar包:
在这里插入图片描述

Dockerfile文件

# 基础镜像使用java
# Docker 首先检查本地是否已存在指定的镜像(包括名称和标签):
# 如果存在,则直接使用本地镜像。
# 若本地没有镜像,Docker 会尝试从配置的镜像仓库拉取(默认是 Docker Hub)
FROM openjdk:17-jdk
# 作者
LABEL maintainer="zhw"
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD eureka-server-0.0.1-SNAPSHOT.jar eureka-server.jar
# 运行jar包
RUN bash -c 'touch /eureka-server.jar'
ENTRYPOINT ["java","-Duser.timezone=GMT+8","-Djava.security.egd=file:/dev/./urandom","-jar","/eureka-server.jar"]

上传Dockerfile jar包至服务器

在这里插入图片描述

拉取open-jdk 17 作为基础镜像

# 对应dockerfile中 FROM openjdk:17-jdk
docker pull openjdk:17-jdk

eureka-server 生成镜像

docker build -t eureka-server:0 .

在这里插入图片描述
在这里插入图片描述

运行镜像

docker run --name eureka-server  -d --restart always -p 9007:8800 eureka-server:0

在这里插入图片描述

访问 eureka页面

http://10.0.1.129:9007/
在这里插入图片描述

添加环境变量

1.通过 Dockerfile 定义环境变量
在构建镜像时使用 ENV 指令设置 默认环境变量(适合不敏感配置):

ENV SPRING_PROFILES_ACTIVE=prod \APP_PORT=8080

2.通过 docker run 命令行传递
运行容器时通过 -e 动态覆盖环境变量:

docker run -d \-e "SPRING_PROFILES_ACTIVE=prod" \-e "DB_URL=jdbc:mysql://db-host:3306/mydb" \-p 8080:8080 \my-spring-app

设置JVM参数

1.硬编码
Dockerfile

# 创建堆转储目录并设置权限
RUN mkdir /dumps && chmod 777 /dumpsENTRYPOINT ["java", \"-Duser.timezone=GMT+8", \"-XX:+HeapDumpOnOutOfMemoryError", \"-XX:HeapDumpPath=/dumps", \"-Djava.security.egd=file:/dev/./urandom", \"-jar", "/eureka-server.jar"]

运行时挂载宿主机目录以持久化转储文件

docker run -v /host/dumps:/dumps your-image

2.结合环境变量
Dockerfile

# 创建堆转储目录并设置权限
RUN mkdir /dumps && chmod 777 /dumps
# 定义默认的 JVM 参数(可被运行时覆盖)
ENV JAVA_OPTS="-Duser.timezone=GMT+08:00 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dumps -Djava.security.egd=file:/dev/./urandom"
# 使用 Shell 形式的 ENTRYPOINT 以解析环境变量
ENTRYPOINT java $JAVA_OPTS -jar /eureka-server.jar

运行时覆盖参数

docker run -e JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/dumps ..." your-image

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词