46 lines
1.4 KiB
Bash
46 lines
1.4 KiB
Bash
|
|
#!/bin/bash
|
||
|
|
# ==============================================
|
||
|
|
# 🚀 Run Laravel Docker Stack with ACL fix
|
||
|
|
# ==============================================
|
||
|
|
|
||
|
|
current_user=$(whoami)
|
||
|
|
echo "Setting ACLs for user: $current_user"
|
||
|
|
|
||
|
|
# Ensure user exists
|
||
|
|
if ! id -u "$current_user" > /dev/null 2>&1; then
|
||
|
|
echo "Error: user '$current_user' does not exist. Exiting."
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Set ACL for ./app directory
|
||
|
|
sudo setfacl -R -m u:"$current_user":rwx ./app
|
||
|
|
|
||
|
|
# Build and start containers
|
||
|
|
docker compose up -d --build "$@"
|
||
|
|
|
||
|
|
# -------------------------------
|
||
|
|
# PSR-4 Autoloading via Composer
|
||
|
|
# -------------------------------
|
||
|
|
if docker compose ps -q php | grep -q .; then
|
||
|
|
echo "Running Composer install as root inside PHP container..."
|
||
|
|
docker compose exec -T --user 0 php bash -c "cd /var/www/app/workopia/ && composer install --no-dev --prefer-dist --ignore-platform-reqs"
|
||
|
|
|
||
|
|
if [ $? -eq 0 ]; then
|
||
|
|
echo "Composer installed successfully."
|
||
|
|
echo "Fixing permissions for vendor and composer.lock..."
|
||
|
|
sudo chown -R ${UID}:${GID} ./app/workopia/vendor
|
||
|
|
sudo chown ${UID}:${GID} ./app/workopia/composer.lock
|
||
|
|
else
|
||
|
|
echo "⚠️ Composer install failed. Check PHP container logs."
|
||
|
|
fi
|
||
|
|
else
|
||
|
|
echo "⚠️ PHP container not running. Cannot run Composer install."
|
||
|
|
fi
|
||
|
|
|
||
|
|
# Optional: view container status
|
||
|
|
docker compose ps
|
||
|
|
sleep 7
|
||
|
|
docker compose ps
|
||
|
|
sleep 7
|
||
|
|
docker compose ps
|