From b5979462f0699f0508e8284eeed7ecaea497666d Mon Sep 17 00:00:00 2001 From: gouki Date: Sat, 18 Jul 2026 15:14:18 +0800 Subject: [PATCH] fix: ensure shared .env is readable by PHP before config:cache Co-authored-by: Cursor --- actions/laravel-release/deploy-release.sh | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/actions/laravel-release/deploy-release.sh b/actions/laravel-release/deploy-release.sh index 9fc73af..e384395 100755 --- a/actions/laravel-release/deploy-release.sh +++ b/actions/laravel-release/deploy-release.sh @@ -110,6 +110,11 @@ run chmod -R g+rwX "$host_release" run ln -s ../../shared/.env "$host_release/.env" run ln -s ../../shared/storage "$host_release/storage" +# PHP runs as uid/gid 1000 inside the container. act_runner often owns +# shared/.env as 0600, which makes env() empty and config:cache write NULLs. +run chgrp "$php_group" "$DEPLOY_ROOT/shared/.env" +run chmod 640 "$DEPLOY_ROOT/shared/.env" + run docker exec --user "$php_user" --workdir "$container_release" \ "$PHP_CONTAINER" composer install \ --no-dev --no-interaction --prefer-dist --optimize-autoloader @@ -152,12 +157,9 @@ if test "$dry_run" != "true"; then if test "${#old_releases[@]}" -gt 0; then for old_release in "${old_releases[@]}"; do release_name="$(basename "$old_release")" - # Prefer container-side delete so root-owned vendor trees are removable. + # Delete via the PHP container as root so vendor trees are removable. run docker exec "$PHP_CONTAINER" \ rm -rf "$CONTAINER_DEPLOY_ROOT/releases/$release_name" - if test -e "$old_release"; then - run rm -rf -- "$old_release" - fi done fi fi