mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	 718c74ca85
			
		
	
	
		718c74ca85
		
	
	
	
	
		
			
			* Allow specifying MBEDTLS_DOCKER_REGISTRY for organizations that have a mirroring proxy of Docker Hub * Specify "--network host" during build to ensure use of the host's DNS resolution.
		
			
				
	
	
		
			94 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash -eu
 | |
| 
 | |
| # docker_env.sh
 | |
| #
 | |
| # Purpose
 | |
| # -------
 | |
| #
 | |
| # This is a helper script to enable running tests under a Docker container,
 | |
| # thus making it easier to get set up as well as isolating test dependencies
 | |
| # (which include legacy/insecure configurations of openssl and gnutls).
 | |
| #
 | |
| # Notes for users
 | |
| # ---------------
 | |
| # This script expects a Linux x86_64 system with a recent version of Docker
 | |
| # installed and available for use, as well as http/https access. If a proxy
 | |
| # server must be used, invoke this script with the usual environment variables
 | |
| # (http_proxy and https_proxy) set appropriately. If an alternate Docker
 | |
| # registry is needed, specify MBEDTLS_DOCKER_REGISTRY to point at the
 | |
| # host name.
 | |
| #
 | |
| #
 | |
| # Running this script directly will check for Docker availability and set up
 | |
| # the Docker image.
 | |
| 
 | |
| # Copyright (C) 2006-2019, Arm Limited (or its affiliates), All Rights Reserved.
 | |
| # SPDX-License-Identifier: Apache-2.0
 | |
| #
 | |
| # Licensed under the Apache License, Version 2.0 (the "License"); you may
 | |
| # not use this file except in compliance with the License.
 | |
| # You may obtain a copy of the License at
 | |
| #
 | |
| #  http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing, software
 | |
| # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | |
| # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| # See the License for the specific language governing permissions and
 | |
| # limitations under the License.
 | |
| #
 | |
| # This file is part of Mbed TLS (https://tls.mbed.org)
 | |
| 
 | |
| 
 | |
| # default values, can be overridden by the environment
 | |
| : ${MBEDTLS_DOCKER_GUEST:=bionic}
 | |
| 
 | |
| 
 | |
| DOCKER_IMAGE_TAG="armmbed/mbedtls-test:${MBEDTLS_DOCKER_GUEST}"
 | |
| 
 | |
| # Make sure docker is available
 | |
| if ! which docker > /dev/null; then
 | |
|     echo "Docker is required but doesn't seem to be installed. See https://www.docker.com/ to get started"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| # Figure out if we need to 'sudo docker'
 | |
| if groups | grep docker > /dev/null; then
 | |
|     DOCKER="docker"
 | |
| else
 | |
|     echo "Using sudo to invoke docker since you're not a member of the docker group..."
 | |
|     DOCKER="sudo docker"
 | |
| fi
 | |
| 
 | |
| # Build the Docker image
 | |
| echo "Getting docker image up to date (this may take a few minutes)..."
 | |
| ${DOCKER} image build \
 | |
|     -t ${DOCKER_IMAGE_TAG} \
 | |
|     --cache-from=${DOCKER_IMAGE_TAG} \
 | |
|     --build-arg MAKEFLAGS_PARALLEL="-j $(nproc)" \
 | |
|     --network host \
 | |
|     ${http_proxy+--build-arg http_proxy=${http_proxy}} \
 | |
|     ${https_proxy+--build-arg https_proxy=${https_proxy}} \
 | |
|     ${MBEDTLS_DOCKER_REGISTRY+--build-arg MY_REGISTRY="${MBEDTLS_DOCKER_REGISTRY}/"} \
 | |
|     tests/docker/${MBEDTLS_DOCKER_GUEST}
 | |
| 
 | |
| run_in_docker()
 | |
| {
 | |
|     ENV_ARGS=""
 | |
|     while [ "$1" == "-e" ]; do
 | |
|         ENV_ARGS="${ENV_ARGS} $1 $2"
 | |
|         shift 2
 | |
|     done
 | |
| 
 | |
|     ${DOCKER} container run -it --rm \
 | |
|         --cap-add SYS_PTRACE \
 | |
|         --user "$(id -u):$(id -g)" \
 | |
|         --volume $PWD:$PWD \
 | |
|         --workdir $PWD \
 | |
|         -e MAKEFLAGS \
 | |
|         -e PYLINTHOME=/tmp/.pylintd \
 | |
|         ${ENV_ARGS} \
 | |
|         ${DOCKER_IMAGE_TAG} \
 | |
|         $@
 | |
| }
 |