diff --git a/Dockerfile b/Dockerfile index 78a556497a..5837ccbd6e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,6 +9,12 @@ ARG TAGS="sqlite sqlite_unlock_notify" ENV TAGS="bindata timetzdata $TAGS" ARG CGO_EXTRA_CFLAGS +ARG GOCACHE +ENV GOCACHE=${GOCACHE:-/root/.cache/go-build} + +ARG GOMODCACHE +ENV GOMODCACHE=${GOMODCACHE:-/go/pkg/mod} + # Build deps RUN apk --no-cache add \ build-base \ @@ -24,10 +30,17 @@ WORKDIR ${GOPATH}/src/code.gitea.io/gitea # Checkout version if set RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \ - && make clean-all build + && make clean-all + +RUN --mount=type=cache,target=/root/.npm \ + --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target="/root/.cache/go-build" \ + make build # Begin env-to-ini build -RUN go build contrib/environment-to-ini/environment-to-ini.go +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target="/root/.cache/go-build" \ + go build contrib/environment-to-ini/environment-to-ini.go # Copy local files COPY docker/root /tmp/local diff --git a/Dockerfile.rootless b/Dockerfile.rootless index e83c1af33b..be8c4653f1 100644 --- a/Dockerfile.rootless +++ b/Dockerfile.rootless @@ -9,6 +9,12 @@ ARG TAGS="sqlite sqlite_unlock_notify" ENV TAGS="bindata timetzdata $TAGS" ARG CGO_EXTRA_CFLAGS +ARG GOCACHE +ENV GOCACHE=${GOCACHE:-/root/.cache/go-build} + +ARG GOMODCACHE +ENV GOMODCACHE=${GOMODCACHE:-/go/pkg/mod} + #Build deps RUN apk --no-cache add \ build-base \ @@ -24,10 +30,17 @@ WORKDIR ${GOPATH}/src/code.gitea.io/gitea # Checkout version if set RUN if [ -n "${GITEA_VERSION}" ]; then git checkout "${GITEA_VERSION}"; fi \ - && make clean-all build + && make clean-all + +RUN --mount=type=cache,target=/root/.npm \ + --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target="/root/.cache/go-build" \ + make build # Begin env-to-ini build -RUN go build contrib/environment-to-ini/environment-to-ini.go +RUN --mount=type=cache,target=/go/pkg/mod/ \ + --mount=type=cache,target="/root/.cache/go-build" \ + go build contrib/environment-to-ini/environment-to-ini.go # Copy local files COPY docker/rootless /tmp/local