generated from oci/template
All checks were successful
Build Docker Image on Commit / build-and-publish (push) Successful in 9s
46 lines
No EOL
1.2 KiB
Bash
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 |