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部署实战的几个脚本,如有内容不当请在评论区指出!

相关推荐
苏渡苇33 分钟前
轻量化AI落地:Java + Spring Boot 实现设备异常预判
java·人工智能·spring boot·后端·网络协议·tcp/ip·spring
VX:Fegn08951 小时前
计算机毕业设计|基于springboot + vue养老院管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
XuCoder1 小时前
零成本从0到1搭建个人博客
后端
雨夜之寂2 小时前
大模型 ai coding 比较
后端·面试
RoyLin2 小时前
Rust 编写的 40MB 大小 MicroVM 运行时,完美替代 Docker 作为 AI Agent Sandbox
后端·架构·rust
礼拜天没时间.3 小时前
Docker Registry私有仓库搭建与使用
java·运维·docker·云原生·容器·centos
前路不黑暗@3 小时前
Java项目:Java脚手架项目的阿里云短信服务集成(十六)
android·java·spring boot·学习·spring cloud·阿里云·maven
Jinkxs3 小时前
RabbitMQ - 第一个 Hello World 程序:SpringBoot 版极简集成
spring boot·rabbitmq·java-rabbitmq
风象南4 小时前
无文档遗留系统的逆向梳理:利用 AI 重建架构视图
后端
zhu62019764 小时前
Postgres数据库docker快速安装
数据库·docker·容器