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: