建设银行不弹出网站,广州制作网站平台,wordpress 如何仿站,兴义市住房城乡建设局网站文章目录 应用场景基于Openjdk容器打包运行jar程序1.编译项目成jar包2.构建Dockerfile文件精简版-含jar包精简版-不含jar包带注释版-含jar包 3.编译Dockerfile成镜像。4.运行镜像#xff1a; 应用场景
部署多版本jdk的应用程序。
基于Openjdk容器打包运行jar程序
1.编译项目… 文章目录 应用场景基于Openjdk容器打包运行jar程序1.编译项目成jar包2.构建Dockerfile文件精简版-含jar包精简版-不含jar包带注释版-含jar包 3.编译Dockerfile成镜像。4.运行镜像 应用场景
部署多版本jdk的应用程序。
基于Openjdk容器打包运行jar程序
1.编译项目成jar包
编译后的jar包拷贝到有docker环境的机器比如是jar包文件名为ruoyi-admin.jar
2.构建Dockerfile文件
在jar包所在目录新建Dockerfile文件填入下面的脚本
拷贝jar包文件进去指定jdk版本和暴露的端口。运行jar包
精简版-含jar包
FROM openjdk:17.0.2-oraclelinux8
MAINTAINER wubingfeng
RUN mkdir -p /ruoyi/server/logs \/ruoyi/server/temp \/ruoyi/skywalking/agent
WORKDIR /ruoyi/server
ENV SERVER_PORT8080 LANGC.UTF-8 LC_ALLC.UTF-8 JAVA_OPTS
EXPOSE ${SERVER_PORT}
COPY ./ruoyi-admin.jar ./app.jar
ENTRYPOINT java -Djava.security.egdfile:/dev/./urandom -Dserver.port${SERVER_PORT} \# 应用名称 如果想区分集群节点监控 改成不同的名称即可#-Dskywalking.agent.service_nameruoyi-server \#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \-jar app.jar \-XX:HeapDumpOnOutOfMemoryError -Xlog:gc*,:time,tags,level -XX:UseZGC ${JAVA_OPTS}精简版-不含jar包
比较适用于调试状态需要不断更新jar包后续把jar包扔到容器映射的宿主机目录重命名为jar重启容器即可。基于下面的Dockerfile文件jar包需要重命名为app.jar该版本运行容器时需要把宿主机的jar包所在目录映射到/ruoyi/server目录
FROM openjdk:17.0.2-oraclelinux8
MAINTAINER wubingfeng
RUN mkdir -p /ruoyi/server/logs \/ruoyi/server/temp \/ruoyi/skywalking/agent
WORKDIR /ruoyi/server
ENV SERVER_PORT8080 LANGC.UTF-8 LC_ALLC.UTF-8 JAVA_OPTS
EXPOSE ${SERVER_PORT}
ENTRYPOINT java -Djava.security.egdfile:/dev/./urandom -Dserver.port${SERVER_PORT} \# 应用名称 如果想区分集群节点监控 改成不同的名称即可#-Dskywalking.agent.service_nameruoyi-server \#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \-jar app.jar \-XX:HeapDumpOnOutOfMemoryError -Xlog:gc*,:time,tags,level -XX:UseZGC ${JAVA_OPTS}带注释版-含jar包
# FROM参数指定基础镜像
FROM openjdk:17.0.2-oraclelinux8# MAINTAINER设置镜像作者信息。
# 可使用更灵活的LABEL参数代替LABEL可设置任何需要设置的元数据
# LABEL MAINTAINERwubingfeng
MAINTAINER wubingfeng# RUN创建工作文件夹
# 尽量使用一个RUN指令来运行多个命令这样可以减少镜像中的层数。例如可以使用符号连接多个命令以减少镜像层的数量。
# 多个RUN会导致多个分层分层多导致镜像体积过大、构建时间增加以及镜像维护困难等问题
RUN mkdir -p /ruoyi/server/logs \/ruoyi/server/temp \/ruoyi/skywalking/agent# WORKDIR设置工作目录
WORKDIR /ruoyi/server# ENV参数定义变量供后续脚本调用。变量可写在一行ENV里也可写在多行ENV里。
ENV SERVER_PORT8080 LANGC.UTF-8 LC_ALLC.UTF-8 JAVA_OPTS# 暴露应用端口
EXPOSE ${SERVER_PORT}# 拷贝jar包到容器
# 使用COPY而非ADD除非确实需要自动解压功能
# 如下COPY表示复制当前目录所有文件到容器的/usr/src/myapp目录下
# COPY . /usr/src/myapp
# ADD应用示例gz扩展名的文件拷贝到容器里并解压
# ADD nginx-1.21.0.tar.gz /usr/local/
# ADD还可以复制远程文件到镜像中
# ADD https://example.com/nginx-1.21.0.tar.gz /usr/local/
# 把我的本地jar包拷贝到容器工作目录
COPY ./target/ruoyi-admin.jar ./app.jar# ENTRYPOINT设置容器启动时执行的命令最简单的如
# ENTRYPOINT [java,-jar,/app/app.jar]
# 也可复杂一些控制更多的虚拟机参数如下
ENTRYPOINT java -Djava.security.egdfile:/dev/./urandom -Dserver.port${SERVER_PORT} \# 应用名称 如果想区分集群节点监控 改成不同的名称即可#-Dskywalking.agent.service_nameruoyi-server \#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \-jar app.jar \-XX:HeapDumpOnOutOfMemoryError -Xlog:gc*,:time,tags,level -XX:UseZGC ${JAVA_OPTS}# ENTRYPOINT参数可以在运行容器时传参但会覆盖dockfile脚本里的ENTRYPOINT参数。
# docker run --name demo3D --rm -it --entrypoint ping demo3:test bing.com.cn# ENTRYPOINT命令基本等同CMD命令这两个命令都支持支持shell、exec两种形式的语法
# https://zhuanlan.zhihu.com/p/548188679?utm_id0
# 1.shell格式
# ENTRYPOINT command param1 param2
# 2.exec格式
# ENTRYPOINT [command, param1, param1]
#通常Docker中推荐使用exec格式语法原因有二。一方面shell格式语法下会通过/bin/sh -c来执行命令另一方面某些镜像甚至不包含Shell致使shell格式下的命令无法被正常执行。但使用exec格式时会无法获取环境变量的值。此时则可以考虑使用shell格式语法3.编译Dockerfile成镜像。
sudo docker build -t your_image_name:your_tag -f ./your_Dockerfile .
4.运行镜像
含jar包
# 单行命令启动,--add-host是为了容器里的jar包能够访问外部的域名资源我的数据库用了域名进行连接与开发环境协同。
docker run -d --name container_name -p 8080:8080 --restartalways --add-host www.bingfengspring.com:172.17.0.1 my-java-image
# 多行脚本启动
#!/bin/bash
docker run -d \--name container_name\-p 8080:8080\--restartalways\--add-host www.bingfengspring.com:172.17.0.1my-java-image
不含jar包适合调试阶段不断更新jar包重启容器即可。
# 单行命令启动,--add-host是为了容器能够访问外部的域名资源与开发环境协同。
docker run -d --name container_name -p 8080:8080 -v 宿主机jar包目录:/ruoyi/server --restartalways --add-host www.bingfengspring.com:172.17.0.1 my-java-image
# 多行脚本启动
#!/bin/bash
docker run -d \--name ruoyi_admin_nojar\-p 8080:8080\-v 宿主机jar包目录:/ruoyi/server\--restartalways\--add-host www.bingfengspring.com:172.17.0.1\my-java-image