-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdocker_run
executable file
·60 lines (50 loc) · 1.45 KB
/
docker_run
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#!/usr/bin/env bash
docker_image=${DOCKER_IMAGE:-"ghcr.io/trustedcomputinggroup/pandoc:latest"}
print_usage() {
echo "Usage:"
echo "$(basename "${0}") [options] [build.sh arguments]"
echo
echo "Arguments:"
echo " Arguments to this script are passed as parameters to build.sh inside of the docker conatiner"
echo
echo "Environment:"
echo
echo "DOCKER_IMAGE: set this env variable to the docker image to run, defaults to ${docker_image}"
echo
echo "Options:"
echo
echo "Miscellaneous"
echo " --help: output this message"
}
# hand process options as we want all options to go to docker run command except ones we know
if test "${1}" == "--help"; then
print_usage
exit 0
fi
EXTRA_RESOURCE_DIR=""
declare -a pass_through_args=()
while [[ $# -gt 0 ]]; do
arg="$1"
case "$arg" in
--extra_resource_dir)
if [[ -n "$2" ]]; then
EXTRA_RESOURCE_DIR="$2"
shift 2
else
echo "Error: Argument for $1 is missing" >&2
exit 1
fi
;;
*)
docker_container_args+=("$arg")
shift
;;
esac
done
declare -a docker_run_args=("--workdir=/workspace" "--volume=$(pwd):/workspace")
if [[ -n "${EXTRA_RESOURCE_DIR}" && -d "${EXTRA_RESOURCE_DIR}" ]]; then
dir=$(basename "${EXTRA_RESOURCE_DIR}")
docker_run_args+=("--volume=${EXTRA_RESOURCE_DIR}:/extra_resources/${dir}")
fi
echo "Launching Container: ${docker_image}"
docker run "${docker_run_args[@]}" "${docker_image}" "${docker_container_args[@]}"