Files

43 lines
1.0 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
paths=(
"${CONFIG_PATH:-./data/config}"
"${MONGO_DATA_PATH:-./data/mongo}"
"${MONGO_INIT_PATH:-./data/mongo-init}"
)
mkdir -p "${paths[@]}"
for path in "${paths[@]}"; do
case "$path" in
./*|../*) chown -R 1000:1000 "$path" 2>/dev/null || true ;;
esac
done
mongo_init_path="${MONGO_INIT_PATH:-./data/mongo-init}"
mkdir -p "$mongo_init_path"
cat > "$mongo_init_path/init-mongo.sh" <<'EOF'
#!/bin/bash
if which mongosh > /dev/null 2>&1; then
mongo_init_bin='mongosh'
else
mongo_init_bin='mongo'
fi
"${mongo_init_bin}" <<MONGOEOF
use ${MONGO_AUTHSOURCE}
db.auth("${MONGO_INITDB_ROOT_USERNAME}", "${MONGO_INITDB_ROOT_PASSWORD}")
db.createUser({
user: "${MONGO_USER}",
pwd: "${MONGO_PASS}",
roles: [
"clusterMonitor",
{ db: "${MONGO_DBNAME}", role: "dbOwner" },
{ db: "${MONGO_DBNAME}_stat", role: "dbOwner" },
{ db: "${MONGO_DBNAME}_audit", role: "dbOwner" },
{ db: "${MONGO_DBNAME}_restore", role: "dbOwner" }
]
})
MONGOEOF
EOF
chmod 755 "$mongo_init_path/init-mongo.sh"