|
@@ -1,13 +1,28 @@
|
|
#!/usr/bin/env bash
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
set -e
|
|
|
|
|
|
|
|
+function log_to_dockerout {
|
|
|
|
+ cd /var/log/firebird
|
|
|
|
+ while true
|
|
|
|
+ do
|
|
|
|
+ for i in $(ls *.log)
|
|
|
|
+ do
|
|
|
|
+ if [ -z "$(pgrep -f ${i})" ] ; then
|
|
|
|
+ echo Processing ${i} > /var/log/dockerout
|
|
|
|
+ tail -f /var/log/firebird/$i 2> /dev/null | while read fread; do echo "[${i}]: ${fread}" >> /var/log/dockerout; :> /var/log/firebird/$i; done &
|
|
|
|
+ fi
|
|
|
|
+ done
|
|
|
|
+ sleep 10
|
|
|
|
+ done
|
|
|
|
+}
|
|
|
|
+
|
|
function sec_init
|
|
function sec_init
|
|
{
|
|
{
|
|
|
|
|
|
-cat <<EOF | isql-fb security.db
|
|
|
|
-create or alter user SYSDBA password '$_SYSDBA_PWD';
|
|
|
|
-commit;
|
|
|
|
-quit;
|
|
|
|
|
|
+ cat <<EOF | isql-fb security.db
|
|
|
|
+ create or alter user SYSDBA password '$_SYSDBA_PWD';
|
|
|
|
+ commit;
|
|
|
|
+ quit;
|
|
EOF
|
|
EOF
|
|
|
|
|
|
if [ -f /run/secrets/FB3_USER_NAME ] && [ -f /run/secrets/FB3_USER_PWD ]; then
|
|
if [ -f /run/secrets/FB3_USER_NAME ] && [ -f /run/secrets/FB3_USER_PWD ]; then
|
|
@@ -22,12 +37,22 @@ fi
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-if [ -f /run/secrets/FB3_SYSDBA_PWD ]; then
|
|
|
|
- _SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD)
|
|
|
|
-else
|
|
|
|
- _SYSDBA_PWD=$RANDOM$RANDOM
|
|
|
|
- echo "Setting SYSDBA's random password: "$_SYSDBA_PWD
|
|
|
|
|
|
+function checkbase_init
|
|
|
|
+{
|
|
|
|
+ mktemp > /etc/firebird/check-database.conf
|
|
|
|
+ rm -f $(cat /etc/firebird/check-database.conf)
|
|
|
|
+ isql-fb << EOF
|
|
|
|
+ CREATE DATABASE "$(cat /etc/firebird/check-database.conf)";
|
|
|
|
+EOF
|
|
|
|
+
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+if [ ! -f /run/secrets/FB3_SYSDBA_PWD ]; then
|
|
|
|
+ mkdir -p /run/secrets
|
|
|
|
+ echo $RANDOM$RANDOM > /run/secrets/FB3_SYSDBA_PWD
|
|
|
|
+ echo "Setting SYSDBA's random password: "$( cat /run/secrets/FB3_SYSDBA_PWD )
|
|
fi
|
|
fi
|
|
|
|
+_SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD)
|
|
|
|
|
|
sed -i "s/^UserManager/#Tmp UserManager/" /etc/firebird/firebird.conf
|
|
sed -i "s/^UserManager/#Tmp UserManager/" /etc/firebird/firebird.conf
|
|
echo "UserManager = Legacy_UserManager" >> /etc/firebird/firebird.conf
|
|
echo "UserManager = Legacy_UserManager" >> /etc/firebird/firebird.conf
|
|
@@ -36,15 +61,11 @@ sed -i "s/UserManager = Legacy_UserManager//" /etc/firebird/firebird.conf
|
|
sed -i "s/#Tmp UserManager/UserManager/" /etc/firebird/firebird.conf
|
|
sed -i "s/#Tmp UserManager/UserManager/" /etc/firebird/firebird.conf
|
|
sec_init
|
|
sec_init
|
|
|
|
|
|
-rm -f /var/log/firebird/firebird.log
|
|
|
|
-mkfifo /var/log/firebird/firebird.log
|
|
|
|
-tail -f /var/log/firebird/firebird.log &
|
|
|
|
-
|
|
|
|
-exec "$@"
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+checkbase_init
|
|
|
|
|
|
|
|
+mkfifo /var/log/dockerout
|
|
|
|
+tail -f /var/log/dockerout &
|
|
|
|
|
|
|
|
+log_to_dockerout &
|
|
|
|
|
|
|
|
+exec "$@"
|