name: Build and Push Docker Image on: workflow_dispatch: inputs: version: description: 'Version' required: true type: choice options: - dev - latest jobs: build: runs-on: ubuntu-22.04 container: image: node:18 env: TZ: Asia/Shanghai steps: - name: Checkout code uses: actions/checkout@v3 - name: Install dependencies run: | apt-get update export DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ sudo tzdata docker.io qemu-utils qemu-user-static binfmt-support parted e2fsprogs \ curl tar python3 python3-pip rsync git android-sdk-libsparse-utils coreutils zerofree apt-get clean rm -rf /var/lib/apt/lists/* ln -snf /usr/share/zoneinfo/$TZ /etc/localtime echo $TZ > /etc/timezone update-binfmts --enable env: DEBIAN_FRONTEND: noninteractive - name: Install Docker Buildx run: | # 创建插件目录 mkdir -p ~/.docker/cli-plugins # 下载 buildx 二进制文件 BUILDX_VERSION="v0.11.2" curl -L "https://github.com/docker/buildx/releases/download/${BUILDX_VERSION}/buildx-${BUILDX_VERSION}.linux-amd64" -o ~/.docker/cli-plugins/docker-buildx chmod +x ~/.docker/cli-plugins/docker-buildx # 验证安装 docker buildx version #- name: Install QEMU # run: | # 安装 QEMU 模拟器 #docker run --privileged --rm tonistiigi/binfmt --install all # 验证 QEMU 安装 #docker buildx inspect --bootstrap - name: Create and use new builder instance run: | # 创建新的 builder 实例 docker buildx create --name mybuilder --driver docker-container --bootstrap # 使用新创建的 builder docker buildx use mybuilder # 验证支持的平台 docker buildx inspect --bootstrap - name: Build multi-arch image run: | # 构建多架构镜像 docker buildx build \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ --file ./build/Dockerfile \ --tag silentwind/kvmd:${{ github.event.inputs.version }} \ . #- name: Login to DockerHub # uses: docker/login-action@v2 # with: # username: ${{ secrets.DOCKERHUB_USERNAME }} # password: ${{ secrets.DOCKERHUB_TOKEN }}