个人使用的自动化脚本部署,配合自己的Dockerfile使用
#!/usr/bin/env bash
ProjectName=$1;
Port=$2;
if [ ! $ProjectName ]; then
echo "ProjectName IS NULL !"
exit
fi
if [ ! $Port ]; then
echo "Port IS NULL !"
exit
fi
echo '[INFO] ------------------------------------------------------------------------';
echo '
###### ### ### ######## ###
## ## ## ## ## ## ## ## ## ##
## ## ## ## ## ## ## ## ##
## #### ## ## ## ## ######## ## ##
## ## ######### ######### ## ## #########
## ## ## ## ## ## ## ## ## ##
###### ## ## ## ## ## ## ## ##
';
echo '[INFO] ------------------------------------------------------------------------';
echo '[info] ------------------ cd /gaara/Code'/$ProjectName/ ' --------------------';
cd /gaara/Code/$ProjectName/;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ git pull origin '$ProjectName' --------------------';
git pull origin $ProjectName;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ mvn clean package ---------------------------------';
mvn clean package;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ clean package success!!! --------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ create the jar to docker --------------------------';
echo '[INFO] ------------------------------------------------------------------------';
mv /gaara/Code/$ProjectName/target/*.jar /gaara/docker/root.jar;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Delete invalid target/* ---------------------------';
rm -rf /gaara/Code/$ProjectName/target;
echo '[INFO] ------------------ Delete success -------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Get the version ------------------------------------';
version=$(cat /gaara/version/Version-$ProjectName)
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Get the version '${version}
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Stop the container ---------------------------------';
docker stop $ProjectName;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ success -----------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Deletet the container -----------------------------';
docker rm $ProjectName;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ success -----------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Deletet the Images -------------------------------';
echo '[INFO] ------------------ cp the Dockerfile to here --------------------------';
cd /gaara/docker;
cp /gaara/Code/Dockerfile ./;
echo '[INFO] ------------------ input Dockerfile success --------------------------';
docker rmi $ProjectName:V${version};
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ success -----------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Version ++ ---------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo "${version} + 0.1"|bc > /gaara/version/Version-$ProjectName;
version=$(cat /gaara/version/Version-$ProjectName)
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ success new Version : '${version}
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Build the Images -------------------------------';
docker build -t $ProjectName:V${version} . > build.txt;
cat build.txt;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Build success ------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Get the docker id ----------------------------------';
awk '{res = cur; cur = $(NF) } END{ print res }' build.txt > cache;
dockerID=$(cat cache);
echo '[INFO] ------------------------------------------------------------------------';
echo '[info] Build the container success, the imageId='$dockerID
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Delete the file--------------------------------------';
rm -rf /gaara/docker/cache;
rm -rf /gaara/docker/root.jar;
rm -rf /gaara/docker/build.txt;
rm -rf /gaara/docker/Dockerfile;
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ success -----------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------ Run the container -----------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
docker run -dit --name $ProjectName -p $Port:8443 $ProjectName:V${version}
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[INFO] ------------------------------------------------------------------------';
echo '[info] The package build successfully';
echo '[INFO] ------------------------------------------------------------------------';
docker logs -f $ProjectName;
网友评论