Invoking make generate (or, equivalently, .dapper generate) fails at go generate:
Unmodified tree build log with podman
([make-generate.log](https://github.com/rancher/dapper/files/13756787/make-generate.log))
```
$ make generate
./.dapper generate
<...>
COMMIT k3s:master
--> c5d9ede7f540
Successfully tagged localhost/k3s:master
c5d9ede7f5401ce8ec923b746df13e3510c573a975a9b650c367e1980a3ce6c5
Running: go generate
go: downloading github.com/sirupsen/logrus v1.9.3
<...>
go: downloading github.com/gofrs/uuid v4.4.0+incompatible
build cache is required, but could not be located: GOCACHE is not defined and neither $XDG_CACHE_HOME nor $HOME are defined
main.go:1: running "go": exit status 1
FATA[0074] exit status 1
make: *** [Makefile:13: generate] Error 1
```
This presumably happens because Dockerfile.dapper sets HOME=${DAPPER_SOURCE} in the same statement as DAPPER_SOURCE=..., which is then not substituted correctly. The problem is not immediately visible on docker only because docker resets an unset $HOME to /root:
Build log with docker, with a patch to make the problem visible
([make-generate-docker.log](https://github.com/rancher/dapper/files/13756873/make-generate-docker.log))
```
$ git diff
diff --git a/Dockerfile.dapper b/Dockerfile.dapper
index af99d3d35e..81b5af3184 100644
--- a/Dockerfile.dapper
+++ b/Dockerfile.dapper
@@ -56,7 +56,7 @@ ENV DAPPER_RUN_ARGS="--privileged -v k3s-cache:/go/src/github.com/k3s-io/k3s/.ca
DAPPER_SOURCE="/go/src/github.com/k3s-io/k3s/" \
DAPPER_OUTPUT="./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy" \
DAPPER_DOCKER_SOCKET=true \
- HOME=${DAPPER_SOURCE} \
+ HOME= \
CROSS=true \
STATIC_BUILD=true
diff --git a/scripts/generate b/scripts/generate
index ebdaf31cc5..142592f36f 100755
--- a/scripts/generate
+++ b/scripts/generate
@@ -8,4 +8,6 @@ mkdir -p build/data
GO=${GO-go}
echo Running: "${GO}" generate
+env | grep HOME=
+exit 1
"${GO}" generate
$ make generate
./.dapper generate
<...>
Successfully tagged k3s:master
Running: go generate
HOME=/root
FATA[0002] exit status 1
make: *** [Makefile:13: generate] Error 1
```
Still, this causes the Go cache (mounted at /go/src/github.com/k3s-io/k3s/.cache) to be effectively broken and unused because $HOME doesn't point to it.
Invoking
make generate
(or, equivalently,.dapper generate
) fails atgo generate
:Unmodified tree build log with podman
([make-generate.log](https://github.com/rancher/dapper/files/13756787/make-generate.log)) ``` $ make generate ./.dapper generate <...> COMMIT k3s:master --> c5d9ede7f540 Successfully tagged localhost/k3s:master c5d9ede7f5401ce8ec923b746df13e3510c573a975a9b650c367e1980a3ce6c5 Running: go generate go: downloading github.com/sirupsen/logrus v1.9.3 <...> go: downloading github.com/gofrs/uuid v4.4.0+incompatible build cache is required, but could not be located: GOCACHE is not defined and neither $XDG_CACHE_HOME nor $HOME are defined main.go:1: running "go": exit status 1 FATA[0074] exit status 1 make: *** [Makefile:13: generate] Error 1 ```This presumably happens because Dockerfile.dapper sets
HOME=${DAPPER_SOURCE}
in the same statement asDAPPER_SOURCE=...
, which is then not substituted correctly. The problem is not immediately visible on docker only because docker resets an unset $HOME to/root
:Build log with docker, with a patch to make the problem visible
([make-generate-docker.log](https://github.com/rancher/dapper/files/13756873/make-generate-docker.log)) ``` $ git diff diff --git a/Dockerfile.dapper b/Dockerfile.dapper index af99d3d35e..81b5af3184 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -56,7 +56,7 @@ ENV DAPPER_RUN_ARGS="--privileged -v k3s-cache:/go/src/github.com/k3s-io/k3s/.ca DAPPER_SOURCE="/go/src/github.com/k3s-io/k3s/" \ DAPPER_OUTPUT="./bin ./dist ./build/out ./build/static ./pkg/static ./pkg/deploy" \ DAPPER_DOCKER_SOCKET=true \ - HOME=${DAPPER_SOURCE} \ + HOME= \ CROSS=true \ STATIC_BUILD=true diff --git a/scripts/generate b/scripts/generate index ebdaf31cc5..142592f36f 100755 --- a/scripts/generate +++ b/scripts/generate @@ -8,4 +8,6 @@ mkdir -p build/data GO=${GO-go} echo Running: "${GO}" generate +env | grep HOME= +exit 1 "${GO}" generate $ make generate ./.dapper generate <...> Successfully tagged k3s:master Running: go generate HOME=/root FATA[0002] exit status 1 make: *** [Makefile:13: generate] Error 1 ```Still, this causes the Go cache (mounted at
/go/src/github.com/k3s-io/k3s/.cache
) to be effectively broken and unused because $HOME doesn't point to it.