bitwarden_rs/hooks
Jeremy Lin 5633b6ac94 Use Docker Buildx for multi-arch builds
The bitwarden_rs code is still cross-compiled exactly as before, but Docker
Buildx is used to rewrite the resulting Docker images with correct platform
metadata (reflecting the target platform instead of the build platform).
Buildx also now handles building and pushing the multi-arch manifest lists.
2021-01-09 02:33:36 -08:00
..
arches.sh Use Docker Buildx for multi-arch builds 2021-01-09 02:33:36 -08:00
build Use Docker Buildx for multi-arch builds 2021-01-09 02:33:36 -08:00
pre_build Use Docker Buildx for multi-arch builds 2021-01-09 02:33:36 -08:00
push Use Docker Buildx for multi-arch builds 2021-01-09 02:33:36 -08:00
README.md Use Docker Buildx for multi-arch builds 2021-01-09 02:33:36 -08:00

The hooks in this directory are used to create multi-arch images using Docker Hub automated builds.

Docker Hub hooks provide these predefined environment variables:

  • SOURCE_BRANCH: the name of the branch or the tag that is currently being tested.
  • SOURCE_COMMIT: the SHA1 hash of the commit being tested.
  • COMMIT_MSG: the message from the commit being tested and built.
  • DOCKER_REPO: the name of the Docker repository being built.
  • DOCKERFILE_PATH: the dockerfile currently being built.
  • DOCKER_TAG: the Docker repository tag being built.
  • IMAGE_NAME: the name and tag of the Docker repository being built. (This variable is a combination of DOCKER_REPO:DOCKER_TAG.)

The current multi-arch image build relies on the original bitwarden_rs Dockerfiles, which use cross-compilation for architectures other than amd64, and don't yet support all arch/distro combinations. However, cross-compilation is much faster than QEMU-based builds (e.g., using docker buildx). This situation may need to be revisited at some point.

References