42 lines
		
	
	
		
			826 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			826 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash -e
 | 
						|
 | 
						|
usage() {
 | 
						|
  echo "Usage: $0 [docker image name] [command]"
 | 
						|
  echo
 | 
						|
  echo Runs command in the specified docker image with
 | 
						|
  echo a CI-appropriate environment
 | 
						|
  echo
 | 
						|
}
 | 
						|
 | 
						|
cd "$(dirname "$0")/.."
 | 
						|
 | 
						|
IMAGE="$1"
 | 
						|
if [[ -z "$IMAGE" ]]; then
 | 
						|
  echo Error: image not defined
 | 
						|
  exit 1
 | 
						|
fi
 | 
						|
 | 
						|
docker pull "$IMAGE"
 | 
						|
shift
 | 
						|
 | 
						|
ARGS=(--workdir /solana --volume "$PWD:/solana" --rm)
 | 
						|
 | 
						|
ARGS+=(--env "CARGO_HOME=/solana/.cargo")
 | 
						|
 | 
						|
# kcov tries to set the personality of the binary which docker
 | 
						|
# doesn't allow by default.
 | 
						|
ARGS+=(--security-opt "seccomp=unconfined")
 | 
						|
 | 
						|
# Ensure files are created with the current host uid/gid
 | 
						|
ARGS+=(--user "$(id -u):$(id -g)")
 | 
						|
 | 
						|
# Environment variables to propagate into the container
 | 
						|
ARGS+=(
 | 
						|
  --env BUILDKITE_TAG
 | 
						|
  --env CODECOV_TOKEN
 | 
						|
  --env CRATES_IO_TOKEN
 | 
						|
)
 | 
						|
 | 
						|
set -x
 | 
						|
docker run "${ARGS[@]}" "$IMAGE" "$@"
 |