woj-server/resource/runner/scripts/docker_run.sh

23 lines
675 B
Bash
Raw Normal View History

2022-10-20 18:21:11 +08:00
#!/usr/bin/env bash
SCRIPT_PATH=$(cd "$(dirname "$0")" && pwd)
. "$SCRIPT_PATH/common.sh"
2022-10-20 18:21:11 +08:00
function docker_run() {
2023-08-11 18:54:00 +08:00
local timeout=${TIMEOUT:-10}
local network=${NETWORK:-"none"}
local memory=${MEMORY:-"256m"}
2023-08-11 18:54:00 +08:00
local log_file=${LOG_FILE:-"/dev/stderr"}
local log_limit=${LOG_LIMIT:-4K}
log_info "$DOCKER run with timeout $timeout"
CONTAINER_NAME=$(uuidgen)
(
sleep "$timeout"
$DOCKER kill "$CONTAINER_NAME"
) &
$DOCKER run --rm --name "$CONTAINER_NAME" --network "$network" --memory "$memory" "$@" 2>&1 | head -c "$log_limit" >"$log_file"
2023-08-11 18:54:00 +08:00
pkill -P $$
$DOCKER kill "$CONTAINER_NAME" >/dev/null 2>&1
return 0
2022-10-20 18:21:11 +08:00
}