#!/bin/bash set -e echo "========================================" echo " Starting Combined Application Container" echo " Flutter APK + Backend + MySQL" echo "========================================" # ======================================== # Project-specific DB name # Fill this in per project so each combined # container keeps its own isolated local DB # and never collides with another project. # ======================================== DB_NAME="" # ======================================== # Start MySQL # ======================================== echo "Starting MySQL..." service mysql start echo "Waiting for MySQL..." until mysqladmin ping -h "127.0.0.1" --silent; do echo "MySQL is not ready yet..." sleep 2 done echo "MySQL Started Successfully." echo "Setting MySQL root password..." mysql -u root -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@1234';" 2>/dev/null || \ mysqladmin -u root password 'Root@1234' 2>/dev/null || \ echo "Root password already set or using socket auth, continuing..." # ======================================== # Initialize Database # ======================================== if [ -f "/usr/local/bin/init-db.sh" ]; then echo "========================================" echo " Initializing Database" echo "========================================" chmod +x /usr/local/bin/init-db.sh DB_NAME="${DB_NAME}" /usr/local/bin/init-db.sh echo "Database Initialization Completed." else echo "init-db.sh not found." echo "Skipping database initialization." fi # ======================================== # Force Backend to use local combined-container MySQL # (overrides application.properties datasource without # touching the template file, so standalone/multi-container # builds remain unaffected) # ======================================== export SPRING_DATASOURCE_URL="jdbc:mysql://127.0.0.1:3306/${DB_NAME}?createDatabaseIfNotExist=true" export SPRING_DATASOURCE_USERNAME="root" export SPRING_DATASOURCE_PASSWORD="Root@1234" # ======================================== # Start Supervisor # ======================================== echo "========================================" echo " Starting Supervisor" echo "========================================" exec /usr/bin/supervisord \ -n \ -c /etc/supervisor/conf.d/supervisord.conf