permission git

This commit is contained in:
Saufi
2026-06-16 20:14:28 +08:00
parent 61f6e3a587
commit a6117828ad
2 changed files with 21 additions and 3 deletions

View File

@@ -10,6 +10,10 @@ services:
volumes: volumes:
- ./src:/var/www/html - ./src:/var/www/html
- ./docker/php/custom.ini:/usr/local/etc/php/conf.d/99-custom.ini - ./docker/php/custom.ini:/usr/local/etc/php/conf.d/99-custom.ini
# Storage & bootstrap/cache guna named volume supaya chown www-data
# (dalam entrypoint) tak menukar pemilikan fail git di host.
- storage_data:/var/www/html/storage
- bootstrap_cache:/var/www/html/bootstrap/cache
environment: environment:
APACHE_DOCUMENT_ROOT: /var/www/html/public APACHE_DOCUMENT_ROOT: /var/www/html/public
APP_ENV: local APP_ENV: local
@@ -42,4 +46,10 @@ services:
networks: networks:
backend_net: backend_net:
name: backend_net name: backend_net
external: true external: true
volumes:
storage_data:
driver: local
bootstrap_cache:
driver: local

View File

@@ -1,17 +1,25 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
# Bind mount (./src:/var/www/html) menindih ownership dari image, jadi kita # storage/ & bootstrap/cache/ ialah named volume (lihat docker-compose.yml).
# betulkan permission storage setiap kali container start — bukan masa build. # Pada mount pertama ia kosong, jadi kita cipta struktur penuh Laravel dan
# betulkan permission setiap kali container start. Sebab ia named volume
# (bukan bind mount host), chown ini TIDAK menyentuh fail git di host.
mkdir -p \ mkdir -p \
storage/app/public \
storage/framework/cache/data \
storage/framework/cache/laravel-excel \ storage/framework/cache/laravel-excel \
storage/framework/sessions \ storage/framework/sessions \
storage/framework/views \ storage/framework/views \
storage/framework/testing \
storage/logs \ storage/logs \
bootstrap/cache bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache chown -R www-data:www-data storage bootstrap/cache
chmod -R 775 storage bootstrap/cache chmod -R 775 storage bootstrap/cache
# Pautan symbolic untuk fail awam (idempotent)
php artisan storage:link 2>/dev/null || true
# Jalankan arahan utama container (apache2-foreground) # Jalankan arahan utama container (apache2-foreground)
exec "$@" exec "$@"