diff --git a/.github/ci/Dockerfile b/.github/ci/Dockerfile index 47e45de..bd9ccfc 100644 --- a/.github/ci/Dockerfile +++ b/.github/ci/Dockerfile @@ -1,6 +1,7 @@ ARG DOCKER_ARCH ARG DEBIAN_VERSION -FROM ${DOCKER_ARCH}debian:${DEBIAN_VERSION} as build_env +ARG DOCKER_REPO +FROM --platform=linux/${DOCKER_ARCH} ${DOCKER_REPO}debian:${DEBIAN_VERSION} as build_env RUN apt-get -y update && apt-get -y install gnupg2 diff --git a/.github/ci/build-env b/.github/ci/build-env index 41d3ce6..5de9fa0 100755 --- a/.github/ci/build-env +++ b/.github/ci/build-env @@ -1,7 +1,7 @@ #!/bin/bash if [[ $# -lt 3 ]]; then - echo "usage: $0 " + echo "usage: $0 " exit 1 fi @@ -10,18 +10,18 @@ docker_image="camera_streamer_build_env" build_type="raspi" [[ -n "$1" ]] && build_type="$1" -debian_version="bullseye" +debian_version="bookworm" [[ -n "$2" ]] && debian_version="$2" && docker_image="${docker_image}_${2}" docker_arch="" -[[ -n "$3" ]] && docker_arch="$3/" && docker_image="${docker_image}_${3}" +[[ -n "$3" ]] && docker_arch="$3" && docker_image="${docker_image}_${3}" PWD=$(pwd) ROOT=$(cd -- "$( dirname -- "${BASH_SOURCE[0]}" )/../.." &> /dev/null && pwd) set -xeo pipefail -docker build -t "$docker_image" \ +DOCKER_BUILDKIT=1 docker build -t "$docker_image" \ --build-arg "DOCKER_ARCH=$docker_arch" \ --build-arg "DEBIAN_VERSION=$debian_version" \ --build-arg "BUILD_TYPE=$build_type" \ diff --git a/.github/workflows/build_release.yaml b/.github/workflows/build_release.yaml index 6363dab..f8164f4 100644 --- a/.github/workflows/build_release.yaml +++ b/.github/workflows/build_release.yaml @@ -9,7 +9,7 @@ jobs: strategy: matrix: debian_version: [bullseye, bookworm] - docker_arch: [amd64, arm32v7, arm64v8] + docker_arch: [amd64, arm/v7, arm64/v8] build_type: [generic, raspi] exclude: - docker_arch: amd64 @@ -38,11 +38,21 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Build Dockerfile - run: docker build --target deb_make --tag deb_make --file .github/ci/Dockerfile --build-arg GIT_VERSION --build-arg DOCKER_ARCH --build-arg DEBIAN_VERSION --build-arg BUILD_TYPE . + run: | + docker build \ + --target deb_make \ + --tag deb_make \ + --file .github/ci/Dockerfile \ + --build-arg GIT_VERSION \ + --build-arg DOCKER_ARCH \ + --build-arg DEBIAN_VERSION \ + --build-arg BUILD_TYPE \ + . env: DEBIAN_VERSION: ${{ matrix.debian_version }} - DOCKER_ARCH: ${{ matrix.docker_arch }}/ + DOCKER_ARCH: ${{ matrix.docker_arch }} BUILD_TYPE: ${{ matrix.build_type }} + DOCKER_BUILDKIT: 1 - name: Create container run: docker create --name deb_make deb_make - name: Copy files diff --git a/.github/workflows/build_test.yaml b/.github/workflows/build_test.yaml index e4410a8..55f58ce 100644 --- a/.github/workflows/build_test.yaml +++ b/.github/workflows/build_test.yaml @@ -12,7 +12,7 @@ jobs: strategy: matrix: debian_version: [bullseye, bookworm] - docker_arch: [amd64, arm32v7, arm64v8] + docker_arch: [amd64, arm/v7, arm64/v8] build_type: [generic, raspi] exclude: - docker_arch: amd64 @@ -28,11 +28,21 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Build Dockerfile - run: docker build --target deb_make --tag deb_make --file .github/ci/Dockerfile --build-arg GIT_VERSION --build-arg DOCKER_ARCH --build-arg DEBIAN_VERSION --build-arg BUILD_TYPE . + run: | + docker build \ + --target deb_make \ + --tag deb_make \ + --file .github/ci/Dockerfile \ + --build-arg GIT_VERSION \ + --build-arg DOCKER_ARCH \ + --build-arg DEBIAN_VERSION \ + --build-arg BUILD_TYPE \ + . env: DEBIAN_VERSION: ${{ matrix.debian_version }} - DOCKER_ARCH: ${{ matrix.docker_arch }}/ + DOCKER_ARCH: ${{ matrix.docker_arch }} BUILD_TYPE: ${{ matrix.build_type }} + DOCKER_BUILDKIT: 1 - name: Create container run: docker create --name deb_make deb_make - name: Copy files