freenet/entrypoint.sh
Merith-TK e6e946ce44
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 9s
it builds and it runs, needs further testing
2025-04-21 14:16:22 -07:00

46 lines
No EOL
1.2 KiB
Bash

#!/bin/bash
set -e
# Create data directories
mkdir -p "${DATA_DIR}" "${CONFIG_DIR}"
# Default command if none provided
DEFAULT_CMD="freenet"
CMD=${@:-$DEFAULT_CMD}
# Check if we're root
if [ "$(id -u)" = "0" ]; then
# If RUN_AS is set, run as that user
if [ -n "${RUN_AS}" ]; then
USER_ID=$(echo "${RUN_AS}" | cut -d: -f1)
GROUP_ID=$(echo "${RUN_AS}" | cut -d: -f2)
echo "Running as ${RUN_AS}"
echo "User ID: ${USER_ID}"
echo "Group ID: ${GROUP_ID}"
# Create user if it doesn't exist
if ! getent group "${GROUP_ID}" >/dev/null; then
groupadd -g "${GROUP_ID}" freenetuser
fi
if ! id "${USER_ID}" >/dev/null 2>&1; then
useradd -l -u "${USER_ID}" -g "${GROUP_ID}" freenetuser -d /home/freenetuser
fi
# Fix permissions
chown -R "${USER_ID}:${GROUP_ID}" /data
export HOME="/home/freenetuser"
echo "Executing command: ${CMD}"
exec gosu "${USER_ID}:${GROUP_ID}" ${CMD}
else
# Run as root if no RUN_AS specified
echo "Executing as root: ${CMD}"
exec ${CMD}
fi
else
# Already non-root
echo "Executing as $(id -u): ${CMD}"
exec ${CMD}
fi