李解的博客

2021-07-03

SpringBoot项目推送Docker私服脚本

本地Docker配置

"insecure-registries": ["xxx.xxx.xxx.xxx:xxx"]
insecure-registries 配置私有域的信任地址,上传镜像必须配置此参数

Liunx

#!/usr/bin/env bash
# 应用名称
appname=perception-data
# 引用版本
version=1.4
# 当前环境,与应用名称拼接,区分所在环境
env=product
# 拼接
fullname=${appname}:${version}-${env}
# 目标服务器
registry=xxx.xxx.xxx.xxx:xxx
# 打包
mvn clean
mvn package
# 构建镜像
docker build -t ${fullname} .
# 标签
docker tag ${fullname} ${registry}/${fullname}
# 推送
docker push ${registry}/${fullname}
# 启动镜像验证
# docker run -p 8088:8088 --name=${appname}-${env}
# 停止容器
docker rm $(docker ps -a -f name=${appname} -q)
# 删除镜像
docker rmi $(docker image ls -f reference=*/${appname}* -q) -f

Windows

@echo off
rem 应用名称
set appname=app
rem 版本
set version=1.4
rem 运行环境
set env=product
rem 应用名称
set fullname=%appname%:%version%-%env%
rem 上传的私有源
set registry=10.86.1.85:18089
rem 打包
mvn clean
mvn package
rem 临时文件
set filename=temp.txt
rem 构建
docker build -t %appname% .
rem 标签私有源
docker tag %appname% %registry%/%appname%
rem 推送
docker push %registry%/%appname%
rem 删除本地容器
docker ps -a -f name=%appname% -q > temp.txt
for %%i in (%filename%) do docker rm %%i
del temp.txt
rem 删除本地镜像
docker image ls -f reference=*/%appname%* -q > temp.txt
for %%i in (%filename%) do docker rmi %%i -f
del temp.txt