From a4cdca2801be236692c8f20ae6b55bb3e8e39190 Mon Sep 17 00:00:00 2001 From: Tortue Torche <126358-tortuetorche@users.noreply.gitlab.com> Date: Wed, 1 Dec 2021 17:47:21 +0100 Subject: [PATCH] Add linux/arm/v7 architecture to support Raspberry Pi Update README.md to mention Docker images multi-architecture --- .gitlab-ci.yml | 2 +- CHANGELOG.md | 2 ++ README.md | 24 ++++++++++++++++++++++-- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ac4a9eb..5c26fcc 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -12,7 +12,7 @@ variables: PSU_TAG_CORE: core-$$CI_COMMIT_SHA DOCKER_REGISTRY_IMAGE: $DOCKER_REGISTRY/$CI_PROJECT_PATH BUILDX_VERSION: "v0.7.1" - DOCKER_MULTI_ARCH: "linux/amd64,linux/arm64" + DOCKER_MULTI_ARCH: "linux/amd64,linux/arm64,linux/arm/v7" stages: - cleanup diff --git a/CHANGELOG.md b/CHANGELOG.md index 378d1ff..384415e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Added +- Add `linux/arm/v7` architecture to support Raspberry Pi ## [1.3.0-beta.1] - 2021-11-30 ### Added diff --git a/README.md b/README.md index 668c818..50779fc 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ _Based on previous work by [@vladbabii](https://github.com/vladbabii) on [docker - [How to install](#how-to-install) - [Standalone](#standalone) - - [Docker image and variants](#docker-image-and-variants) + - [Docker image, variants and multi-architecture](#docker-image-variants-and-multi-architecture) - [How to use](#how-to-use) - [With options](#with-options) - [With flags](#with-flags) @@ -83,7 +83,7 @@ You should download and install [Git](https://git-scm.com/download/win) and [jq] \* = required -### Docker image and variants +### Docker image, variants and multi-architecture If you don't want or can't install `psu` and its dependencies, you can run it with the default [published Docker image](https://hub.docker.com/r/psuapp/psu), like this: ```bash @@ -139,6 +139,26 @@ The `debian` and `debian-core` variants use [Debian](https://www.debian.org) ins - `1.0-debian`, `1.0.7-debian` -> [`v1.0.7`](https://gitlab.com/psuapp/psu/-/tags/v1.0.7) - `1.0-debian-core`, `1.0.7-debian-core` -> [`v1.0.7`](https://gitlab.com/psuapp/psu/-/tags/v1.0.7) +##### Multi-Architecture + +The Docker images support multi-architecture: `linux/amd64`, `linux/arm64` and `linux/arm/v7`. + +On ARM machines, if you get this error when running a `psu` Docker image: +``` +standard_init_linux.go:228: exec user process caused: exec format error +``` + +You need to install `linux/amd64` QEMU binary, like this: +```bash +docker run --privileged --rm tonistiigi/binfmt --install linux/amd64 +``` +Then run your `psu` Docker image again and it should work 🤞 + +And if you want to uninstall this QEMU binary, run this command: +```bash +docker run --privileged --rm tonistiigi/binfmt --uninstall linux/amd64 +``` + #### Testing/debugging: For testing/debugging, you can use this Docker image in interactive mode, to run any commands inside the container: