All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 13s
64 lines
1.9 KiB
Bash
Executable File
64 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# shellcheck disable=SC1091
|
|
source "${AGENT_PATH}/common.sh"
|
|
|
|
_check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG"
|
|
|
|
# Set defaults
|
|
WEB_PORT="${WEB_PORT:-8080}"
|
|
INFLUXDB_PORT="${INFLUXDB_PORT:-8086}"
|
|
DEVICES="${DEVICES:-/dev/sda}"
|
|
PRIVILEGED_MODE="${PRIVILEGED_MODE:-false}"
|
|
COLLECTOR_CRON_SCHEDULE="${COLLECTOR_CRON_SCHEDULE:-0 0 * * *}"
|
|
|
|
# Build device arguments
|
|
DEVICE_ARGS=""
|
|
if [ "$PRIVILEGED_MODE" = "true" ]; then
|
|
DEVICE_ARGS="--privileged"
|
|
else
|
|
for dev in $DEVICES; do
|
|
# Auto-prepend /dev/ if not already a path
|
|
if [[ "$dev" != /* ]]; then
|
|
dev="/dev/$dev"
|
|
fi
|
|
if [ -e "$dev" ]; then
|
|
DEVICE_ARGS="$DEVICE_ARGS --device=$dev"
|
|
else
|
|
echo "Warning: Device $dev does not exist, skipping"
|
|
fi
|
|
done
|
|
if [ -z "$DEVICE_ARGS" ]; then
|
|
_die "No valid devices found. Check DEVICES setting or enable PRIVILEGED_MODE."
|
|
fi
|
|
fi
|
|
|
|
# Build docker run command
|
|
DOCKER_RUN_CMD="docker run -d \
|
|
--restart unless-stopped \
|
|
--name ${CONTAINER_NAME} \
|
|
-p ${WEB_PORT}:8080 \
|
|
-p ${INFLUXDB_PORT}:8086 \
|
|
-v ${CONTAINER_NAME}_config:/opt/scrutiny/config \
|
|
-v ${CONTAINER_NAME}_influxdb:/opt/scrutiny/influxdb \
|
|
-v /run/udev:/run/udev:ro \
|
|
--cap-add SYS_RAWIO \
|
|
--cap-add SYS_ADMIN \
|
|
-e COLLECTOR_CRON_SCHEDULE=\"${COLLECTOR_CRON_SCHEDULE}\" \
|
|
${DEVICE_ARGS} \
|
|
${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
|
|
|
|
# Start container
|
|
if ! _create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then
|
|
_die "Failed to start container ${CONTAINER_NAME}"
|
|
fi
|
|
|
|
# Verify running
|
|
sleep 2
|
|
if ! _is_container_running "$CONTAINER_NAME"; then
|
|
echo "Container logs:"
|
|
docker logs "$CONTAINER_NAME" 2>&1 | tail -20
|
|
_die "Container ${CONTAINER_NAME} is not running"
|
|
fi
|
|
|
|
echo "Container ${CONTAINER_NAME} started successfully."
|