diff --git a/Dockerfile b/Dockerfile index a2ef153..2071a3f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,26 +33,33 @@ COPY --chown=www-data:www-data . . RUN mkdir -p app/Helpers && \ echo " app/Helpers/Helper.php -# Install dependencies -RUN composer install --no-dev --no-interaction --no-progress --optimize-autoloader +# CRITICAL: Create storage directories BEFORE composer install +RUN mkdir -p storage/framework/{cache,sessions,views} \ + && mkdir -p storage/logs \ + && mkdir -p bootstrap/cache \ + && chmod -R 777 storage \ + && chmod -R 777 bootstrap/cache -# Create startup script with directory creation +# Verify directories exist (debug) +RUN ls -la storage/framework/ && ls -la bootstrap/ + +# Install dependencies with --no-scripts first to avoid post-install commands +RUN composer install --no-dev --no-interaction --no-progress --optimize-autoloader --no-scripts + +# Now run the post-install scripts (storage exists now) +RUN composer run-script post-autoload-dump || echo "Post-autoload dump skipped" + +# Generate key if needed +RUN php artisan key:generate --no-interaction --force || true + +# Create startup script with runtime directory creation RUN echo '#!/bin/sh' > /start.sh && \ echo '' >> /start.sh && \ - echo '# Create storage directories with proper permissions at runtime' >> /start.sh && \ + echo '# Ensure storage directories exist at runtime' >> /start.sh && \ echo 'mkdir -p storage/framework/{cache,sessions,views}' >> /start.sh && \ echo 'mkdir -p storage/logs' >> /start.sh && \ echo 'mkdir -p bootstrap/cache' >> /start.sh && \ - echo 'chmod -R 775 storage bootstrap/cache' >> /start.sh && \ - echo 'chmod -R 777 storage/framework/sessions storage/logs' >> /start.sh && \ - echo 'chown -R www-data:www-data storage bootstrap/cache' >> /start.sh && \ - echo '' >> /start.sh && \ - echo '# Generate key if not set' >> /start.sh && \ - echo 'php artisan key:generate --no-interaction --force || true' >> /start.sh && \ - echo '' >> /start.sh && \ - echo '# Clear cache' >> /start.sh && \ - echo 'php artisan config:clear || true' >> /start.sh && \ - echo 'php artisan cache:clear || true' >> /start.sh && \ + echo 'chmod -R 777 storage bootstrap/cache' >> /start.sh && \ echo '' >> /start.sh && \ echo '# Start the application based on mode' >> /start.sh && \ echo 'if [ "$MODE" = "dev" ]; then' >> /start.sh && \