mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 10:03:42 +08:00 
			
		
		
		
	This might break compatibility with projects using this module that
are still on go1.16, which is EOL, so probably ok to ignore:
    github.com/docker/buildx/store imports
        github.com/gofrs/flock tested by
        github.com/gofrs/flock.test imports
        gopkg.in/check.v1 loaded from gopkg.in/check.v1@v1.0.0-20200227125254-8fa46927fb4f,
        but go 1.16 would select v1.0.0-20201130134442-10cb98267c6c
    To upgrade to the versions selected by go 1.16:
        go mod tidy -go=1.16 && go mod tidy -go=1.17
    If reproducibility with go 1.16 is not needed:
        go mod tidy -compat=1.17
    For other options, see:
        https://golang.org/doc/modules/pruning
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
		
	
		
			
				
	
	
		
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
# syntax=docker/dockerfile:1.4
 | 
						|
 | 
						|
ARG GO_VERSION=1.18
 | 
						|
ARG MODOUTDATED_VERSION=v0.8.0
 | 
						|
 | 
						|
FROM golang:${GO_VERSION}-alpine AS base
 | 
						|
RUN apk add --no-cache git rsync
 | 
						|
WORKDIR /src
 | 
						|
 | 
						|
FROM base AS vendored
 | 
						|
RUN --mount=target=/context \
 | 
						|
  --mount=target=.,type=tmpfs  \
 | 
						|
  --mount=target=/go/pkg/mod,type=cache <<EOT
 | 
						|
set -e
 | 
						|
rsync -a /context/. .
 | 
						|
go mod tidy -compat=1.17
 | 
						|
go mod vendor
 | 
						|
mkdir /out
 | 
						|
cp -r go.mod go.sum vendor /out
 | 
						|
EOT
 | 
						|
 | 
						|
FROM scratch AS update
 | 
						|
COPY --from=vendored /out /out
 | 
						|
 | 
						|
FROM vendored AS validate
 | 
						|
RUN --mount=target=/context \
 | 
						|
  --mount=target=.,type=tmpfs <<EOT
 | 
						|
set -e
 | 
						|
rsync -a /context/. .
 | 
						|
git add -A
 | 
						|
rm -rf vendor
 | 
						|
cp -rf /out/* .
 | 
						|
if [ -n "$(git status --porcelain -- go.mod go.sum vendor)" ]; then
 | 
						|
  echo >&2 'ERROR: Vendor result differs. Please vendor your package with "make vendor"'
 | 
						|
  git status --porcelain -- go.mod go.sum vendor
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
EOT
 | 
						|
 | 
						|
FROM psampaz/go-mod-outdated:${MODOUTDATED_VERSION} AS go-mod-outdated
 | 
						|
FROM base AS outdated
 | 
						|
RUN --mount=target=.,ro \
 | 
						|
  --mount=target=/go/pkg/mod,type=cache \
 | 
						|
  --mount=from=go-mod-outdated,source=/home/go-mod-outdated,target=/usr/bin/go-mod-outdated \
 | 
						|
  go list -mod=readonly -u -m -json all | go-mod-outdated -update -direct
 |