From 5738be25414810ff9f76dfd41354df52ec4e389f Mon Sep 17 00:00:00 2001 From: Jean-Louis Fuchs Date: Mon, 25 Dec 2023 11:09:37 +0100 Subject: [PATCH] use buildx/inline cache --- .github/workflows/testing.yml | 4 ++-- Makefile | 21 +++++++++++++++++---- compose/Dockerfile | 11 ++++++----- docker-compose.yml | 5 +---- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index e6e1f33..b48091e 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -18,9 +18,9 @@ jobs: - name: Checkout code uses: actions/checkout@v2 - - name: Run build + - name: Build container run: | - make up push + make build - name: Run tests run: | diff --git a/Makefile b/Makefile index 592979c..251c7ab 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,10 @@ .DEFAULT_GOAL := help +CACHE_IMG = "ghcr.io/adfinis/pyaptly/cache:latest" + +DOCKER_BUILDKIT = 1 +export DOCKER_BUILDKIT + # Help target extracts the double-hash comments from the targets and shows them # in a convenient way. This allows us to easily document the user-facing Make # targets @@ -7,14 +12,22 @@ help: @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort -k 1,1 | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +.PHONY: build +build: ## Build action for github-actions + docker buildx build \ + --cache-to type=gha,mode=max \ + --cache-from type=gha \ + -t $(CACHE_IMG) compose + +# --cache-from type=registry,ref=ghcr.io/adfinis/pyaptly/cache:latest .PHONY: up -up: ## start and build container if needed - #@docker pull ghcr.io/adfinis/pyaptly/cache:latest - @DOCKER_BUILDKIT=1 docker compose up -d --build +up: ## start the container (cached) + @docker compose up -d --build .PHONY: push push: ## push docker build cache to registry - @docker push ghcr.io/adfinis/pyaptly/cache:latest + @docker push $(CACHE_IMG) .PHONY: down down: ## stop and remove container diff --git a/compose/Dockerfile b/compose/Dockerfile index 9b20f4d..33792fd 100644 --- a/compose/Dockerfile +++ b/compose/Dockerfile @@ -1,5 +1,4 @@ -ARG DOCKER_IMAGE -FROM $DOCKER_IMAGE +FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends \ python3-toml \ @@ -30,6 +29,8 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ && rm -rf /var/lib/apt/archives/* \ && rm -rf /var/cache/apt/* ADD setup /setup -RUN /setup/setup -ADD run /setup/run -ENTRYPOINT ["/usr/bin/tini", "--"] \ No newline at end of file +#RUN /setup/setup +#ADD run /setup/run +WORKDIR /source +ENTRYPOINT ["/usr/bin/tini", "--"] +CMD ["bash", "/setup/run"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index e90c033..c2738df 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,12 +4,9 @@ services: image: ghcr.io/adfinis/pyaptly/cache:latest build: cache_from: - - ghcr.io/adfinis/pyaptly/cache:latest + - type=registry,ref=ghcr.io/adfinis/pyaptly/cache:latest context: compose args: BUILDKIT_INLINE_CACHE: 1 - DOCKER_IMAGE: debian:bookworm-slim - working_dir: /source - command: ["bash", "/setup/run"] volumes: - ./:/source