docker-borgbackup-cron/entrypoint.sh

40 wiersze
1.1 KiB
Bash

#!/bin/bash
set -eo pipefail
shopt -s nullglob
if [[ -n "$SSH_KNOWN_HOSTS" ]]; then
echo "Adding domains and ips to known hosts"
mkdir -p ~/.ssh
touch ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
while IFS=' ' read -ra entries; do
for entry in "${entries[@]}"; do
ssh-keyscan ${entry} >> ~/.ssh/known_hosts
done
done <<< "$SSH_KNOWN_HOSTS"
fi
if [[ -f /run/secrets/borg_passphrase ]]; then
echo "Setting BORG_PASSPHRASE env variable from secret"
export BORG_PASSPHRASE=$(cat /run/secrets/borg_passphrase)
elif [[ -z "$BORG_PASSPHRASE" ]]; then
echo "BORG_PASSPHRASE env variable not set. Exiting"
exit 1
fi
if [[ -f /run/secrets/db_password ]]; then
echo "Setting MYSQL_PASSWORD env variable from secret"
export MYSQL_PASSWORD=$(cat /run/secrets/db_password)
fi
if [[ -f /run/secrets/smtp_password ]]; then
echo "Setting SMTP_PASSWORD env variable from secret"
export SMTP_PASSWORD=$(cat /run/secrets/smtp_password)
fi
# Make env variables accessible in crontab
declare -p | grep -Ev 'BASHOPTS|BASH_VERSINFO|EUID|PPID|SHELLOPTS|UID' > /container.env
exec "$@"