概述
平时都是直接打包成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