You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Bash
		
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
. $(dirname $0)/util
 | 
						|
 | 
						|
: ${TARGETPLATFORM=$CLI_PLATFORM}
 | 
						|
: ${CONTINUOUS_INTEGRATION=}
 | 
						|
 | 
						|
set -ex
 | 
						|
 | 
						|
progressFlag=""
 | 
						|
if [ "$CONTINUOUS_INTEGRATION" == "true" ]; then progressFlag="--progress=plain"; fi
 | 
						|
 | 
						|
binariesDocker() {
 | 
						|
  mkdir -p bin/tmp
 | 
						|
  export DOCKER_BUILDKIT=1
 | 
						|
  iidfile=$(mktemp -t docker-iidfile.XXXXXXXXXX)
 | 
						|
 | 
						|
  platformFlag=""
 | 
						|
  if [ -n "$TARGETPLATFORM" ]; then
 | 
						|
    platformFlag="--build-arg=TARGETPLATFORM=$TARGETPLATFORM"
 | 
						|
  fi
 | 
						|
 | 
						|
  docker build $platformFlag --target=binaries --iidfile $iidfile --force-rm .
 | 
						|
  iid=$(cat $iidfile)
 | 
						|
  containerID=$(docker create $iid copy)
 | 
						|
  docker cp $containerID:/ bin/tmp
 | 
						|
  mv bin/tmp/build* bin/
 | 
						|
  rm -rf bin/tmp
 | 
						|
  docker rm $containerID
 | 
						|
  docker rmi -f $iid
 | 
						|
  rm -f $iidfile
 | 
						|
}
 | 
						|
 | 
						|
binaries() {
 | 
						|
  platformFlag=""
 | 
						|
  if [ ! -z "$TARGETPLATFORM" ]; then
 | 
						|
    platformFlag="--frontend-opt=platform=$TARGETPLATFORM"
 | 
						|
  fi
 | 
						|
  buildctl build $progressFlag --frontend=dockerfile.v0 \
 | 
						|
    --local context=. --local dockerfile=. \
 | 
						|
    --frontend-opt target=binaries $platformFlag \
 | 
						|
    --output type=local,dest=./bin/
 | 
						|
}
 | 
						|
 | 
						|
case $buildmode in
 | 
						|
"buildkit")
 | 
						|
  binaries
 | 
						|
  ;;
 | 
						|
"docker-buildkit")
 | 
						|
  binariesDocker
 | 
						|
  ;;
 | 
						|
*)
 | 
						|
	echo "buildctl or docker with buildkit support is required"
 | 
						|
  exit 1
 | 
						|
  ;;
 | 
						|
esac
 |