将springboot应用打包为docker镜像并运行

概述

平时都是直接打包成jar包,然后直接命令行运行。

但是不便于管理。容器化的概念已经推广开来了,正好可以把springboot应用打包成镜像,用docker运行。
docker容器再用docker-compose进行统一编排,方便管理。

dockerFile编写

bash 复制代码
# 基础镜像
FROM  findepi/graalvm:java17-native
# author
MAINTAINER felix

# 在容器中创建目录
RUN mkdir -p /app/qps-admin

# 指定容器的工作路径
WORKDIR /app/qps-admin

# 从宿主机复制jar文件到容器中,这里实际复制到容器的/app/qps-admin路径下
COPY ./qps-admin.jar ./qps-admin.jar
# 启动服务,$JAVA_OPTS在docker-compose的yml evn中声明
ENTRYPOINT ["sh", "-c", "java -jar $JAVA_OPTS qps-admin.jar"]

docker-compose配置文件

yaml 复制代码
version: '3'
services:
  redis:
    image: qps-admin:latest
    container_name: qps-admin
    restart: always #重启docker后该容器也重启
    deploy:
      resources:
           limits:
             memory: 1024mb
    ports:
      - "8080:8080"
    environment:
      # 时区上海
      TZ: Asia/Shanghai
      # 对应dockerfile中的变量
      JAVA_OPTS:
        -Xms512m
        -Xmx1024m
        -XX:MetaspaceSize=128m
        -XX:MaxMetaspaceSize=512m
        -XX:+HeapDumpOnOutOfMemoryError

    volumes:
      # log
      - ./logs:/app/qps-admin/logs
    privileged: true

制作docker镜像

bash 复制代码
#-t代表镜像名字,.代表当前目录 -f 指定dockerfile文件
docker build -t qps-admin:latest . -f ./dockfile

启动镜像

bash 复制代码
docker-compose up -d
相关推荐
Waay1 小时前
图文详解|K8s Pod内部结构
docker·云原生·kubernetes
r-t-H5 小时前
KVM虚拟化与Docker基础实践-第二章
阿里云·docker·容器
Lyra_Infra6 小时前
技术排查报告:Kubernetes Ingress 路由异常
docker·架构
木雷坞7 小时前
Home Assistant Docker Compose 升级失败排查:镜像、备份和设备映射
服务器·docker·home assisant
老码观察7 小时前
K8s 容器化部署的宿主机资源规划的踩坑实录
docker·容器·kubernetes
我是谁??7 小时前
【6】基于 Docker + YOLOv8 的模型部署实战(GTX1660S + Ubuntu22.04)
yolo·docker·容器
魔极客8 小时前
1panel面析中Ollama Docker配置错误解析与修复
运维·docker·容器
JAVA社区8 小时前
Java进阶全套教程(八)—— Docker超详细实战详解
java·运维·开发语言·docker·容器·面试·职场和发展
我是谁??8 小时前
【5】基于 Docker + YOLOv8 环境实现模型量化(GTX1660S + Ubuntu22.04)
yolo·docker·容器
我是谁??8 小时前
【4】基于 Docker + YOLOv8 环境将模型转换为 ONNX(GTX1660S + Ubuntu22.04)
yolo·docker·容器