mirror of
https://github.com/nitnelave/lldap.git
synced 2023-04-12 14:25:13 +00:00
46546dac27
Adds support for the UID/GID env variables in Docker via `gosu`.
48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
for SECRET in LLDAP_JWT_SECRET LLDAP_LDAP_USER_PASS; do
|
|
FILE_VAR="${SECRET}_FILE"
|
|
SECRET_FILE="${!FILE_VAR:-}"
|
|
if [[ -n "$SECRET_FILE" ]]; then
|
|
if [[ -f "$SECRET_FILE" ]]; then
|
|
declare "$SECRET=$(cat $SECRET_FILE)"
|
|
export "$SECRET"
|
|
echo "[entrypoint] Set $SECRET from $SECRET_FILE"
|
|
else
|
|
echo "[entrypoint] Could not read contents of $SECRET_FILE (specified in $FILE_VAR)" >&2
|
|
fi
|
|
fi
|
|
done
|
|
|
|
CONFIG_FILE=/data/lldap_config.toml
|
|
|
|
if [[ ( ! -w "/data" ) ]] || [[ ( ! -d "/data" ) ]]; then
|
|
echo "[entrypoint] The /data folder doesn't exist or cannot be written to. Make sure to mount
|
|
a volume or folder to /data to persist data across restarts, and that the current user can
|
|
write to it."
|
|
exit 1
|
|
fi
|
|
|
|
if [[ ! -f "$CONFIG_FILE" ]]; then
|
|
echo "[entrypoint] Copying the default config to $CONFIG_FILE"
|
|
echo "[entrypoint] Edit this file to configure LLDAP."
|
|
cp /app/lldap_config.docker_template.toml $CONFIG_FILE
|
|
fi
|
|
|
|
if [[ ! -r "$CONFIG_FILE" ]]; then
|
|
echo "[entrypoint] Config file is not readable. Check the permissions"
|
|
exit 1;
|
|
fi
|
|
|
|
echo "> Setup permissions.."
|
|
find /app \! -user "$UID" -exec chown "$UID:$GID" '{}' +
|
|
find /data \! -user "$UID" -exec chown "$UID:$GID" '{}' +
|
|
|
|
|
|
echo "> Starting lldap.."
|
|
echo ""
|
|
exec gosu "$UID:$GID" /app/lldap "$@"
|
|
|
|
exec "$@"
|