initdb.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #!/bin/bash
  2. # Get query for DB creation
  3. docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
  4. # Create query to update the guacadmin password
  5. cat >user.sql <<'EOL'
  6. SET @salt = UNHEX(SHA2(UUID(), 256));
  7. UPDATE guacamole_user
  8. SET password_salt = @salt, password_hash = UNHEX(SHA2(CONCAT('_PASSWORD_', HEX(@salt)), 256))
  9. WHERE user_id = 1;
  10. EOL
  11. source .env
  12. sed -i user.sql -e "s/_PASSWORD_/$PASSWORD/g"
  13. # Start mysql and create database as it is up
  14. docker-compose up -d mysql \
  15. && docker cp initdb.sql mysql:/ \
  16. && docker exec mysql \
  17. sh -c "while [ ! -S /var/run/mysqld/mysqld.sock ] ; do sleep 2 && echo 'Wait for mysql to come up...'; done; sleep 5; echo 'go'" \
  18. && docker exec mysql \
  19. sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole < /initdb.sql" \
  20. && docker exec mysql \
  21. sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole -e 'show tables;'"
  22. # Update guacadmin password
  23. docker cp user.sql mysql:/ \
  24. && docker exec mysql \
  25. sh -c "mysql --verbose --user=guacamole --password=guacamole guacamole < /user.sql" \
  26. # Start guacamole
  27. docker-compose up -d