SpringBoot docker部署实战

SpringBoot docker部署实战

Dockerfile

构建java服务镜像

sh 复制代码
FROM openjdk:8-jre  # 初始镜像
ENV APP_HOME=/apps 
COPY ./OnlineHospital.jar ./app.jar
# 处理时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
EXPOSE 9966 # 对外暴露端口
ENV JAVA_OPTS="\
-server \
-Xms8g \
-Xmx8g \ 
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \ 
-XX:+PrintHeapAtGC \ 
-Xloggc:logs/gc.log \ 
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=5 \
-XX:GCLogFileSize=20M \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=logs/dump.hprof "

ENTRYPOINT java ${JAVA_OPTS} \
# jvisualvm远程连接
-Djava.rmi.server.hostname=ip \
-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dfile.encoding=UTF-8 \
-jar app.jar --spring.profiles.active=pro

package.sh

删除容器、删除镜像,重新构建java服务镜像

sh 复制代码
# 调用方式
# container_name 容器名 
# mirror_name 镜像名
# 容器名、镜像名为空则直接进行打包,生成镜像名为sz2
sh package.sh (container_name) (mirror_name)
sh 复制代码
#! /bin/bash
if [[ $1 ]]; then 
printf "remove comtainer: $1\n";
docker rm -f $1
fi

if [[ $2 ]]; then
printf "remove images: $2\n"
docker rmi $2
fi

docker build -t sz2 ../

run.sh

sh 复制代码
# 启动脚本
#! /bin/bash
printf "hello 160!"

docker run -d \
 -p 9966:9966 -p 1099:1099 \
 --restart=always \ # 开机启动&&失败重启
 -h localhost \ # 指定启动容器主机名
 -v /root/160/docker_workspace/allpaylocal_sz2/logs:/logs \ # 日志映射
 --net=host \ # 强制使用宿主机ip/端口
 --privileged=true \ # 拥有root权限
 --name allpay_sz2 sz2

以上便是SpringBoot docker部署实战的几个脚本,如有内容不当请在评论区指出!

相关推荐
hsfxuebao1 小时前
Loop Engineering 保姆级教程 + 项目实战
人工智能·后端
打工仔折腾 AI1 小时前
从 Demo 到生产级 Agent:8 个关键设计机制与 Python 实现拆解
java·jvm·人工智能·后端·python·langchain·ai agent 实战
架构技术专栏2 小时前
交叉熵:AI 怎样给概率预测打分
后端
code_slave(码畜)2 小时前
微服务架构落地:基础服务 —— 报表服务(中篇:元数据、查询引擎、缓存与权限落地)
spring boot·spring cloud·缓存·微服务·架构
ZealSinger3 小时前
Boot4挂起函数丢traceId怎么修
spring boot·kotlin·协程·可观测性
IT_陈寒3 小时前
SpringBoot自动配置坑了我一把,原来是这样绕过去的
前端·人工智能·后端
code_slave(码畜)4 小时前
微服务架构落地:基础服务 —— 报表服务(AI 集成篇:AI 增强报表能力)
人工智能·spring boot·spring cloud·微服务·架构
要努力啊4694 小时前
用 Codex 加速 Java 开发:从代码生成到测试覆盖的完整实战
后端
dora4 小时前
LangChain4j 新手入门实战教程(Java版)
后端·langchain·agent
蜗牛互联网4 小时前
MongoDB Atlas Agent Engine之后,如何用版本门禁防止陈旧写入
java·数据库·人工智能·后端·mongodb