2019-04-05 16:03:48 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
DOCKER="${DOCKER:-%DOCKER%}"
|
|
|
|
IMAGE="${IMAGE:-%IMAGE%}"
|
|
|
|
NETWORK="${NETWORK:-host}"
|
|
|
|
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
|
|
|
|
|
2019-04-05 21:02:59 +00:00
|
|
|
if [ -n "$USERID" ]; then
|
|
|
|
RUNFLAGS="$RUNFLAGS --user $USERID:$USERID"
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -n "$PID" ]; then
|
|
|
|
RUNFLAGS="$RUNFLAGS --pid $PID"
|
|
|
|
fi
|
2019-04-05 16:03:48 +00:00
|
|
|
|
|
|
|
# shellcheck disable=SC2086
|
|
|
|
set -- $RUNFLAGS --entrypoint "$ENTRYPOINT" "$IMAGE" "$@"
|
|
|
|
|
|
|
|
exec "$DOCKER" run "$@"
|