rasta/rasta_exp/launch-container.sh
Jean-Marie Mineau cd1e91bb99
first commit
2023-11-16 14:30:24 +01:00

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