@setlocal
@echo off
setlocal enabledelayedexpansion
REM program : win_docker_check_status.sh
REM author : wangqijia@youzan.com
REM   date : 2020-06-23
REM version : 0.0.0.1
REM 声明采用UTF-8编码
chcp 65001


:: 解析参数
if "%1"=="-h"  (
echo Usage:
echo -h: 打印帮助信息; 
echo -t: 指定容器服务类型;  
echo -p: 查询容器实例启动情况;
echo -i: 查询容器镜像是否存在;
goto :succ
)

if "%1"=="-t" (
set DOCKER_TYPE=%2
echo 指定的容器服务类型为：!DOCKER_TYPE!
)

if "%3"=="-p" (
set CHECK_INSTANCE_FLAG=1
echo 检查容器服务实例状态
)

if "%3"=="-i" (
set CHECK_IMAGE_FLAG=1
echo 检查容器镜像是否存在
)

:: 检测安装Dockers信息
docker -v
if !errorlevel! == 0 (
echo 检测到已安装Docker!!
) else (
echo 检测到尚未安装Docker，请先安装Dockers
goto :fail
)

:: 检查Docker版本信息
set MIN_DOCKER_VERSION="17.03"
for /f "tokens=3 delims= " %%i in ('docker -v') do ( set docker_ver=%%i)
set docker_version=!docker_ver:~0,-1!

if !docker_version! geq %MIN_DOCKER_VERSION% (
echo 当前Docker版本：!docker_version!
) else (
echo 当前Docker版本太低，请先升级，最低版本要求: %MIN_DOCKER_VERSION%
goto :fail
)

if !CHECK_INSTANCE_FLAG! equ 1 (
echo %DOCKER_TYPE%
if "!DOCKER_TYPE!" == "mysql" (
:: 检查mysql容器服务是否已启动
docker ps | find "yz-mysql"
if !errorlevel! == 0 (
echo mysql组件容器服务已启动！
goto :succ
) else (
echo mysql组件容器尚未启动！
goto :fail
)
) else (
:: 检查redis容器服务实例是否已启动
docker ps | find "yz-redis"
if !errorlevel! == 0 (
echo redis组件容器服务已启动！
goto :succ
) else (
echo redis组件容器尚未启动！
goto :fail
)
)
)

if !CHECK_IMAGE_FLAG! equ 1 (
if "!DOCKER_TYPE!" == "mysql" (
::检查mysql镜像是否存在
docker images | find "hub-mirror.c.163.com/library/mysql"
if !errorlevel! == 0 (
echo mysql容器镜像已存在！
goto :succ
) else (
echo mysql容器镜像不存在！
goto :fail
)
) else (
::检查redis镜像是否存在
docker images | find "hub-mirror.c.163.com/library/redis"
if !errorlevel! == 0 (
echo redis容器镜像已存在！
goto :succ
) else (
echo redis容器镜像不存在！
goto :fail
)
)

)

:succ
exit /B 0

:fail
exit /B 1

:: pause
