#!/bin/sh set -e DOCKER="${DOCKER:-%DOCKER%}" IMAGE="${IMAGE:-%IMAGE%}" NETWORK="${NETWORK:-host}" USERID="${USERID:-$(id -u)}" PROJECT_ROOT="${PROJECT_ROOT:-%PROJECT_ROOT%}" SCRIPT_ROOT="${SCRIPT_ROOT:-"$PROJECT_ROOT/build"}" ENTRYPOINT="${ENTRYPOINT:-%RUNCMD%}" if [ ! -d "$SCRIPT_ROOT" ]; then echo "error:$0: $SCRIPT_ROOT not found; set project root (PROJECT_ROOT=)" 1>&2 exit 1 fi HOST_CONTAINER="${HOST_CONTAINER:-"$("$SCRIPT_ROOT/get_container_id.sh")"}" || true RUNFLAGS='%RUNFLAGS%' if [ -n "$HOST_CONTAINER" ]; then RUNFLAGS="$RUNFLAGS --volumes-from $HOST_CONTAINER" fi RUNFLAGS="$RUNFLAGS --network $NETWORK" if [ -n "$CONTAINER_CGROUP_PARENT" ]; then RUNFLAGS="$RUNFLAGS --cgroup-parent $CONTAINER_CGROUP_PARENT" fi RUNFLAGS="$RUNFLAGS --workdir $PWD" # if STDIN piped or redirected if [ -p /dev/stdin ] || { [ ! -t 0 ] && [ ! -p /dev/stdin ]; }; then RUNFLAGS="$RUNFLAGS --interactive" elif [ -t 1 ]; then RUNFLAGS="$RUNFLAGS --tty" fi if [ -t 0 ] && ! "$SCRIPT_ROOT/is_running_in_bg.sh" $$; then RUNFLAGS="$RUNFLAGS --interactive" fi RUNFLAGS="$RUNFLAGS --user $USERID:$USERID" # shellcheck disable=SC2086 set -- $RUNFLAGS --entrypoint "$ENTRYPOINT" "$IMAGE" "$@" exec "$DOCKER" run "$@"