name: Docker on: workflow_dispatch: push: branches: [ main ] env: ALIYUN_REGISTRY: "${{ secrets.ALIYUN_REGISTRY }}" ALIYUN_NAME_SPACE: "${{ secrets.ALIYUN_NAME_SPACE }}" ALIYUN_REGISTRY_USER: "${{ secrets.ALIYUN_REGISTRY_USER }}" ALIYUN_REGISTRY_PASSWORD: "${{ secrets.ALIYUN_REGISTRY_PASSWORD }}" jobs: build: name: Pull runs-on: ubuntu-latest steps: - name: Setup Docker buildx uses: docker/setup-buildx-action@79abd3f86f79a9d68a23c75a09a9a85889262adf - name: Check out code uses: actions/checkout@v2 - name: Build and push image Aliyun run: | docker login -u $ALIYUN_REGISTRY_USER -p $ALIYUN_REGISTRY_PASSWORD $ALIYUN_REGISTRY while IFS= read -r line; do [[ -z "$line" ]] && continue echo "docker pull $line" docker pull $line # 获取镜像的完整名称,例如kasmweb/nginx:1.25.3(命名空间/镜像名:版本号) image=$(echo "$line" | awk '{print $NF}') # 获取 镜像名:版本号 例如nginx:1.25.3 image_name_tag=$(echo "$image" | awk -F'/' '{print $NF}') new_image="$ALIYUN_REGISTRY/$ALIYUN_NAME_SPACE/$image_name_tag" echo "docker tag $image $new_image" docker tag $image $new_image echo "docker push $new_image" docker push $new_image done < images.txt