summarylogtreecommitdiffstats
path: root/0004-Dockerfile.dapper-sanitize-cache-configuration.patch
diff options
context:
space:
mode:
Diffstat (limited to '0004-Dockerfile.dapper-sanitize-cache-configuration.patch')
-rw-r--r--0004-Dockerfile.dapper-sanitize-cache-configuration.patch67
1 files changed, 67 insertions, 0 deletions
diff --git a/0004-Dockerfile.dapper-sanitize-cache-configuration.patch b/0004-Dockerfile.dapper-sanitize-cache-configuration.patch
new file mode 100644
index 000000000000..e5a459b88a06
--- /dev/null
+++ b/0004-Dockerfile.dapper-sanitize-cache-configuration.patch
@@ -0,0 +1,67 @@
+From 2e7ba23c8853b7ad86a431bfe588e94385989c94 Mon Sep 17 00:00:00 2001
+From: Ivan Shapovalov <intelfx@intelfx.name>
+Date: Sat, 23 Dec 2023 01:08:37 +0100
+Subject: [PATCH 4/6] Dockerfile.dapper: sanitize cache configuration
+
+- set $HOME to /root because there is no good reason to keep it in $PWD
+- mount volumes to /go/pkg to cache downloaded Go sources (we'd set it
+ to /go, but that would mask the k3s source tree at /go/src) and
+ /root/.cache to cache Go object files ($GOCACHE, ~/.cache/go-build)
+---
+ .dockerignore | 1 +
+ Dockerfile.dapper | 9 +++++++--
+ Makefile | 1 +
+ 3 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/.dockerignore b/.dockerignore
+index 36131d3744..c7418f3674 100644
+--- a/.dockerignore
++++ b/.dockerignore
+@@ -5,3 +5,4 @@
+ ./.cache
+ ./.dapper
+ ./.trash-cache
++./.dapper-cache
+diff --git a/Dockerfile.dapper b/Dockerfile.dapper
+index 5ae64df57b..5c49581a76 100644
+--- a/Dockerfile.dapper
++++ b/Dockerfile.dapper
+@@ -50,8 +50,13 @@ RUN if [ "$(go env GOARCH)" = "amd64" ]; then \
+ ARG SELINUX=true
+ ENV SELINUX=${SELINUX}
+
++# Set to someone's $HOME to persist Go pkg cache ($GOPATH/pkg) Hand Go object cache ($GOCACHE)
++ARG DAPPER_CACHE_HOME=./.dapper-cache
++ARG DAPPER_CACHE_GOPATH=${DAPPER_CACHE_HOME}/go
++ARG DAPPER_CACHE_DOTCACHE=${DAPPER_CACHE_HOME}/cache
++
+ # Set Dapper configuration variables
+-ENV DAPPER_RUN_ARGS="--privileged -v k3s-cache:/go/src/github.com/k3s-io/k3s/.cache -v trivy-cache:/root/.cache/trivy" \
++ENV DAPPER_RUN_ARGS="--privileged -v ${DAPPER_CACHE_GOPATH}/pkg:/go/pkg -v ${DAPPER_CACHE_DOTCACHE}:/root/.cache" \
+ DAPPER_ENV="REPO TAG DRONE_TAG IMAGE_NAME SKIP_VALIDATE SKIP_IMAGE SKIP_AIRGAP AWS_SECRET_ACCESS_KEY AWS_ACCESS_KEY_ID GITHUB_TOKEN GOLANG GOCOVER DEBUG" \
+ DAPPER_SOURCE="/go/src/github.com/k3s-io/k3s/" \
+ DAPPER_OUTPUT="./dist" \
+@@ -59,7 +64,7 @@ ENV DAPPER_RUN_ARGS="--privileged -v k3s-cache:/go/src/github.com/k3s-io/k3s/.ca
+ CROSS=true \
+ STATIC_BUILD=true
+ # Set $HOME separately because it refers to $DAPPER_SOURCE, set above
+-ENV HOME=${DAPPER_SOURCE}
++ENV HOME=/root
+
+ WORKDIR ${DAPPER_SOURCE}
+
+diff --git a/Makefile b/Makefile
+index 620f899894..50af6aa110 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,6 +10,7 @@ GO_FILES ?= $$(find . -name '*.go' | grep -v generated)
+ @mv .dapper.tmp .dapper
+
+ $(TARGETS): .dapper
++ @mkdir -p .dapper-cache/{go/pkg,cache}
+ ./.dapper $@
+
+ .PHONY: deps
+--
+2.43.0
+