#! /bin/bash docker -v if [ -n "$INPUT_USERNAME" ]; then # echo "$INPUT_PASSWORD" | docker login $INPUT_REGISTRY -u $INPUT_USERNAME --password-stdin docker login $INPUT_REGISTRY -u $INPUT_USERNAME -p $INPUT_PASSWORD cat ~/.docker/config.json if [ ! -f ~/.docker/config.json ] || ! cat ~/.docker/config.json | grep -q "$INPUT_REGISTRY"; then echo "登录失败" exit 1 fi fi echo $INPUT_TAGS tags=(${INPUT_TAGS//,/ }) echo $tags cd $INPUT_CONTEXT tmp_image_name=$(uuidgen) tmp_image_name=${tmp_image_name//-/} if [ -n "$INPUT_PLATFORM" ]; then #开启实验特性 DOCKER_CLI_EXPERIMENTAL=enabled docker buildx create --platform $INPUT_PLATFORM --use --name build echo "docker buildx build -t $tmp_image_name -f $INPUT_DOCKERFILE --load --platform $INPUT_PLATFORM ." docker buildx build -t $tmp_image_name -f $INPUT_DOCKERFILE --load --platform $INPUT_PLATFORM . else echo "docker build -t $tmp_image_name -f $INPUT_DOCKERFILE ." docker build -t $tmp_image_name -f $INPUT_DOCKERFILE . fi if docker images --format "{{.Repository}}:{{.Tag}}" | grep -q $tmp_image_name; then echo "镜像存在" for tag in ${tags[@]}; do image_name="$INPUT_REGISTRY/$INPUT_IMAGE:$tag" echo "docker tag $tmp_image_name $image_name" docker tag $tmp_image_name $image_name docker push $image_name docker rmi $image_name done docker rmi $tmp_image_name echo "删除所有构建镜像完成" else echo "镜像不存在" exit 1 fi if [ -n "$INPUT_SCRIPT" ]; then echo "存在自定义脚本:$INPUT_SCRIPT" evel "$INPUT_SCRIPT" fi