Jenkins+docker自动化部署管理springBoot项目
以上四个配置说明:
1、Source files:jenkins源jar包路径
2、Remove prefix:拷贝目录需要删除的前缀(一般配置为第一个路径去掉jar文件之前的)
3、Remote directory:远程机器目录
4、远程机器shell脚本路径
FROM java:8-jre
MAINTAINER paywallet-accounting
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/shanghai" > /etc/timezone
CMD ["nohup", "java", "-jar","-Dspring.profiles.active=dev", "/app/paywallet-accounting-1.0-SNAPSHOT.jar", ">", "/dev/null", "&"]
EXPOSE 8003
需要修改的地方:
新应用只需要修改 应用名(MAINTAINER)、端口(EXPOSE)
启动命令中的启动模式、jar路径(标红部分)
#操作/项目路径(Dockerfile存放的路劲)
BASE_PATH=/data/paywallet/accounting
#端口(与Dockerfile中的EXPOSE相同)
PORT=8003
#docker 容器中jar目录(与Dockerfile中的CMD的jar目录相同)
DOCKER_PATH=/app
#docker 镜像/容器名字或者jar名字 这里都命名为这个(建议与Dockerfile中的MAINTAINER相同)
SERVER_NAME=paywallet-accounting
LOG_PATH=/data/canteen/app/logs
#容器id
CID=$(docker ps -a | grep "$SERVER_NAME" | awk '{print $1}')
#镜像id
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
DATE=`date +%Y%m%d%H%M`
# 构建docker镜像
function build(){
if [ -n "$IID" ]; then
echo "存在$SERVER_NAME镜像,IID=$IID"
else
echo "不存在$SERVER_NAME镜像,开始构建镜像"
cd $BASE_PATH
docker build -t $SERVER_NAME .
fi
}
# 运行docker容器
function run(){
build
if [ -n "$CID" ]; then
echo "存在$SERVER_NAME容器,CID=$CID,重启docker容器 ..."
docker restart $SERVER_NAME
echo "$SERVER_NAME容器重启完成"
else
echo "不存在$SERVER_NAME容器,docker run创建容器..."
docker run --name $SERVER_NAME -v $BASE_PATH:$DOCKER_PATH -v $LOG_PATH:/logs -d -p $PORT:$PORT $SERVER_NAME
echo "$SERVER_NAME容器创建完成"
fi
}
#入口
run