#! /bin/bash
#设置根目录 当前路径
basePath=$(cd "$(dirname "$0")";pwd)
echo "global arg, basePath is:" $basePath
function rebuildImageAndRun(){
_dockerfile_path=$1
#echo "_dockerfile_path is:" $_dockerfile_path
_jar_name=$2
#echo "_jar_name is:" $_jar_name
_docker_name=$3
#echo "_docker_name is:" $_docker_name
_docker_version=$4
#echo "_docker_version is:" $_docker_version
_mirror_name_version=$3:$4
#echo "_mirror_name_version is:" $_mirror_name_version
_port=$5
#echo "_port is:" $_port
if [ -f "$_dockerfile_path/Dockerfile" ];then
cd $_dockerfile_path
# 删除容器 container
_container_id=$(docker ps -aq --filter ancestor=$_mirror_name_version)
echo "_container_id is:" $_container_id
if [ $_container_id ]; then
echo "delete container:" $_mirror_id
docker rm -f $_container_id
fi
# 删除镜像 mirror
_mirror_id=$(docker images -q --filter reference=$_mirror_name_version)
echo "_mirror_id is:" $_mirror_id
if [ $_mirror_id ]; then
echo "delete mirror:" $_mirror_id
docker rmi -f $_mirror_id
fi
# 重新build 镜像
docker build -t $_mirror_name_version .
# 启动容器
#echo "docker run -d -p $_port:$_port $_mirror_name_version --name $_docker_name"
docker run -d -p $_port:$_port $_mirror_name_version --name $_docker_name
else
echo "error, $_dockerfile_path/Dockerfile is not exist !!"
fi
# 返回文件所在目录
cd $basePath
}
# 1、test 镜像
echo "--- build test images begin"
# 参数之间使用空格区分 ,参数1:dockerfile 所在目录 参数2:jar包名称 参数3:镜像名称 参数4:镜像标签 参数5 映射端口
rebuildImageAndRun $basePath com.kaiwen-1.0-SNAPSHOT.jar test latest 28000
echo "--- build test images end"
镜像重新build在启动
最新推荐文章于 2024-04-29 20:15:05 发布