29 lines
1.1 KiB
Bash
Executable file
29 lines
1.1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
# DOCKER OR SINGULARITY ?
|
|
MODE=$1
|
|
TOOL_NAME=$2
|
|
CONTAINER_IMG=$3
|
|
WORKDIR=$4
|
|
TMP_DIR=$5
|
|
APK_FILENAME=$6
|
|
|
|
[[ -z "$MODE" ]] || [[ -z "$TOOL_NAME" ]] || [[ -z "$CONTAINER_IMG" ]] || [[ -z "$WORKDIR" ]] || [[ -z "$TMP_DIR" ]] || [[ -z "$APK_FILENAME" ]] && (echo MISSING parameters; exit 1)
|
|
|
|
ENV_FILE="./envs/${TOOL_NAME}.env"
|
|
if [[ -e "./envs/${TOOL_NAME}_medium.env" ]]
|
|
then
|
|
ENV_FILE=./envs/${TOOL_NAME}_medium.env
|
|
echo USING medium ENV : $ENV_FILE
|
|
fi
|
|
|
|
#TODO Handle env files for docker/singularity: param --env-file=
|
|
if [[ "DOCKER" == "$MODE" ]]; then
|
|
# DOCKER
|
|
docker run --read-only -it --env-file=${ENV_FILE} --tmpfs /run --tmpfs /tmp --mount type=bind,source=${WORKDIR},destination=/mnt --user=$(id -u):$(id -g) -t ${CONTAINER_IMG} /run.sh ${TIMEOUT} ${APK_FILENAME}
|
|
fi
|
|
if [[ "SINGULARITY" == "$MODE" ]]; then
|
|
# SINGULARITY
|
|
echo ${TMP_WORKDIR}
|
|
singularity exec --net --network=none --no-home --cleanenv --env-file=${ENV_FILE} --bind ${WORKDIR}:/mnt --bind ${TMP_DIR}:/tmp -c ${CONTAINER_IMG}.sif /run.sh ${TIMEOUT} ${APK_FILENAME}
|
|
fi
|