#!/bin/bash set -a if [ -f /etc/redhat-release ] || [ -f /etc/rocky-release ]; then source ./.env elif [ -f /etc/lsb-release ]; then . ./.env else echo "Unsupported OS" fi set +a schema="https://" serverName=$2 tag=$3 desc() { clear echo "===========================================================" echo "Deploy Containter" echo "===========================================================" echo "version 0.1" echo "deploy: deploy containter" echo "delete: delete containter" echo "" echo "===========================================================" echo press any key to continue && read TEMP && echo ok.. } list_image() { image_id=`docker inspect --format="{{.Config.Image}}" ${serverName}` } list_process() { process_id=`docker inspect --format="{{.Id}}" ${serverName}` } #pull镜像 pull_image() { echo "----------------" echo "Pull Image" echo "----------------" imageName="${DOCKER_REGISTRY_URL}/${DOCKER_REGISTRYURL_NAMESPACE}/${serverName}" echo "$DOCKER_PASSWORD" | docker login --username=${DOCKER_USERNAME} --password-stdin ${DOCKER_REGISTRY_URL} docker pull "${imageName}:${tag}" echo "" } #运行镜像 deploy_image() { echo "----------------" echo "Deploy Image" echo "----------------" export VERSION=${tag} docker compose up -d ${serverName} echo "" } #停掉容器、删除容器、删除镜像 delete_image() { echo "----------------" echo "Delete Image" echo "----------------" list_image list_process if [ "$image_id" != "" ] ; then if [ "$process_id" != "" ] ; then #停掉容器 docker stop $process_id #删除容器 docker rm $process_id #删除镜像 docker rmi --force $image_id else #删除镜像 docker rmi --force $image_id fi fi echo "" } # main program case $1 in "deploy") pull_image delete_image deploy_image ;; "delete") delete_image ;; *) desc ;; esac