docker-entrypoint.sh 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #!/bin/bash
  2. set -eo pipefail
  3. # function
  4. qs() {
  5. if [[ $1 = /run/secrets/* ]]
  6. then
  7. result=`cat $1`
  8. echo ${result@Q}
  9. else
  10. echo ${1@Q}
  11. fi
  12. }
  13. # Unzip
  14. if [ -n "${UNA_ZIP_DOWNLOAD_URL:-}" ] && [ -n "${UNA_ZIP_FOLDER:-}" ] && \
  15. [ ! -e "index.php" ] && [ ! -e "inc/version.inc.php" ]; then
  16. su "$UNA_USER" -c "
  17. set -eo pipefail;
  18. if [ \"${UNA_FOLDER_CLEANUP}\" = \"1\" ]; then
  19. find . -mindepth 1 -maxdepth 1 -exec rm -rf {} +;
  20. fi;
  21. curl -fSL \"${UNA_ZIP_DOWNLOAD_URL}\" -o una.zip;
  22. unzip -q una.zip;
  23. rm una.zip;
  24. mv \"${UNA_ZIP_FOLDER}\"/* .;
  25. mv \"${UNA_ZIP_FOLDER}/.htaccess\" .;
  26. rm -rf \"${UNA_ZIP_FOLDER}\";
  27. chmod 777 inc cache cache_public logs tmp storage;
  28. chmod +x plugins/ffmpeg/ffmpeg.exe;
  29. // find storage -exec chmod $UNA_USER:$UNA_USER {} \+
  30. "
  31. fi
  32. # Clean folders
  33. rm -rf cache/* cache_public/* tmp/*
  34. # Change permissions
  35. chmod +x plugins/ffmpeg/ffmpeg.exe
  36. find . -exec chown $UNA_USER:$UNA_USER {} \+ || true
  37. # Install
  38. if [ -d "install" ] && [ ! -f "inc/header.inc.php" ]; then
  39. if [ -f /tmp/addon.sql ]; then
  40. echo "Found additional SQL file..."
  41. cat /tmp/addon.sql >> ./install/sql/addon.sql
  42. fi
  43. \cp -f /srv/header.inc.php install/patterns/ # make sure that old UNA version can work with ENV vars
  44. su $UNA_USER -c "php ./install/cmd.php \
  45. --db_host=$(qs ${UNA_DB_HOST:-$VAR_DEF_DB_HOST}) \
  46. --db_port=$(qs ${UNA_DB_PORT:-$VAR_DEF_DB_PORT}) \
  47. --db_sock=$(qs ${UNA_DB_SOCK:-}) \
  48. --db_name=$(qs ${UNA_DB_NAME}) \
  49. --db_user=$(qs ${UNA_DB_USER:-$VAR_DEF_DB_USER}) \
  50. --db_password=$(qs ${UNA_DB_PWD:-$VAR_DEF_DB_PWD}) \
  51. --server_http_host=$(qs ${UNA_HTTP_HOST:-$VAR_DEF_HTTP_HOST}) \
  52. --server_php_self='/install/index.php' \
  53. --server_doc_root='/var/www/html/' \
  54. --site_title=$(qs ${UNA_SITE_TITLE:-$VAR_DEF_TITLE}) \
  55. --site_email=$(qs ${UNA_SITE_EMAIL:-$VAR_DEF_EMAIL}) \
  56. --admin_username=$(qs ${UNA_ADMIN_USERNAME:-$VAR_DEF_USERNAME}) \
  57. --admin_email=$(qs ${UNA_ADMIN_EMAIL:-$VAR_DEF_EMAIL}) \
  58. --admin_password=$(qs ${UNA_ADMIN_PWD:-$VAR_DEF_ADMIN_PWD}) \
  59. --oauth_key=$(qs ${UNA_KEY:-}) --oauth_secret=$(qs ${UNA_SECRET:-})"
  60. rm -rf ./install
  61. fi
  62. # Crontab
  63. if [[ ! -v UNA_NO_CRONTAB ]]; then
  64. echo "* * * * * /usr/local/bin/php -c /var/www /var/www/html/periodic/cron.php 2>&1 | sed -e \"s/\(.*\)/[\`date\`] \1/\" >>/var/www/cron.log" > /var/www/crontab
  65. chown $UNA_USER:$UNA_USER /var/www/crontab
  66. crontab -u $UNA_USER /var/www/crontab
  67. /etc/init.d/cron start
  68. fi
  69. #
  70. exec "$@"