From a24577fb445f6da3a0f83dbcd50a57e0c1918616 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Mon, 24 Oct 2022 10:16:34 -0700 Subject: [PATCH 1/3] dockerfile: prefix image name with docker.io This makes sure that all versions of podman can resolve the image successfully --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index e61dc54..bbb8e9f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM zmkfirmware/zmk-build-arm:stable +FROM docker.io/zmkfirmware/zmk-build-arm:stable WORKDIR /app From 6ce32f01d4279b3a0e71bef444d741c12575ba80 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Sun, 23 Oct 2022 21:32:10 -0700 Subject: [PATCH 2/3] Use podman, fall back to docker if unavailable --- Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index ea54d90..61c2131 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ TIMESTAMP := $(shell date -u +"%Y%m%d%H%M%S") +DOCKER := $(shell { command -v podman || command -v docker; }) .PHONY: clean setup @@ -10,11 +11,11 @@ clean: rm ./firmware/*.uf2 firmware/%-left.uf2 firmware/%-right.uf2: config/adv360.keymap - docker run --rm -it --name zmk \ + $(DOCKER) run --rm -it --name zmk \ -v $(PWD)/firmware:/app/firmware \ -v $(PWD)/config:/app/config:ro \ -e TIMESTAMP=$(TIMESTAMP) \ zmk setup: Dockerfile bin/build.sh config/west.yml - docker build --tag zmk --file Dockerfile . + $(DOCKER) build --tag zmk --file Dockerfile . From 45ea621702839246bc28250174dc8e0b551cbc96 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Tue, 25 Oct 2022 11:39:51 -0700 Subject: [PATCH 3/3] readme: include note about requiring podman or docker for local build --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2878b5..258694e 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,12 @@ 1. Push a commit to trigger the build. 2. Download the artifact. -## To build Firmware locally using Docker +## To build Firmware locally using a container ### First run +Note: Either Podman or Docker is required, Podman is preferred if both are present. + 1. Execute `make all`. 2. Check the `firmware` directory for the latest firmware build.