前言
最近项目接触到比较扯淡的事情,开发环境和测试环境网络不通,发布测试环境比较费劲,最后考虑使用Docker-compose来实现发布,下面开启我的使用之旅吧…………
解决问题列表
- Springboot项目打包
- 通过Dockerfile构建镜像
- dockercompose修改配置文件参数
- 使用dockercompose来进行镜像发布启动
文件目录
Springboot项目打包
该步骤省略,网上很多帖子,不详细叙述,有需要的可以留言,根据留言情况可以写新的帖子。
通过Dockerfile构建镜像
创建Dockerfile内容如下
# 使用官方的 OpenJDK 11 镜像作为基础镜像
FROM openjdk:11-jre-slim# 设置工作目录
# WORKDIR /app# 将构建好的 JAR 文件复制到容器中
ADD demo-0.0.1-SNAPSHOT.jar demo.jar
# 指定容器启动时运行的命令
ENTRYPOINT ["/bin/sh", "-c", "java -jar demo.jar"]
dockercompose修改配置文件参数
创建docker-compose-demo.yml内容如下
version: '3'
services:
demo:
restart: always #总是重启,包括宕机,异常等
build:
context: . # 使用当前目录的 Dockerfile 来构建镜像
args:
TAG: ${DATATIME} #构建docker镜像的版本号
container_name: demo #启动容器的名称
image: demo:${DATATIME} #启动镜像的名称:版本号
ports:
- "9088:9088" #springboot服务端口映射: 对外端口:服务本身端口
environment:
- SERVER_PORT=9088 #springboot服务本身端口参数设置
volumes:
- ./logs:/demo/logs #日志映射
使用dockercompose来进行镜像发布启动
MODULE_NAME=demo
DATATIME=$(date +%Y%m%d%H%M%S)#build
#docker build -t demo ./ #该步骤通过上面docker-compose中的build来实现#remove server
docker stop ${MODULE_NAME} 2>/dev/null && docker rm -fv ${MODULE_NAME} 2>/dev/null#start server
#docker-compose -f docker-compose-demo.yml up --build -d#下面指令DATATIME=${DATATIME}传入docker-compose-demo.yml${DATATIME}来使用
DATATIME=${DATATIME} docker-compose -f docker-compose-demo.yml up --build -d
打完收工,欢迎各位大佬提供更好的思路!!!