docker-entrypoint.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #!/usr/bin/env bash
  2. set -e
  3. function sec_init
  4. {
  5. cat <<EOF | isql-fb security.db
  6. create or alter user SYSDBA password '$_SYSDBA_PWD';
  7. commit;
  8. quit;
  9. EOF
  10. if [ -f /run/secrets/FB3_USER_NAME ] && [ -f /run/secrets/FB3_USER_PWD ]; then
  11. echo "Setting up Firebird user $(cat /run/secrets/FB3_USER_NAME) with 'grant create database'"
  12. cat <<EOF | isql-fb security.db
  13. create or alter user $(cat /run/secrets/FB3_USER_NAME) password '$(cat /run/secrets/FB3_USER_PWD)';
  14. grant create database to user $(cat /run/secrets/FB3_USER_NAME);
  15. commit;
  16. quit;
  17. EOF
  18. fi
  19. }
  20. if [ -f /run/secrets/FB3_SYSDBA_PWD ]; then
  21. _SYSDBA_PWD=$(cat /run/secrets/FB3_SYSDBA_PWD)
  22. else
  23. _SYSDBA_PWD=$RANDOM$RANDOM
  24. echo "Setting SYSDBA's random password: "$_SYSDBA_PWD
  25. fi
  26. sed -i "s/^UserManager/#Tmp UserManager/" /etc/firebird/firebird.conf
  27. echo "UserManager = Legacy_UserManager" >> /etc/firebird/firebird.conf
  28. sec_init
  29. sed -i "s/UserManager = Legacy_UserManager//" /etc/firebird/firebird.conf
  30. sed -i "s/#Tmp UserManager/UserManager/" /etc/firebird/firebird.conf
  31. sec_init
  32. rm -f /var/log/firebird/firebird.log
  33. mkfifo /var/log/firebird/firebird.log
  34. tail -f /var/log/firebird/firebird.log &
  35. exec "$@"