diff --git a/Dockerfile b/Dockerfile index 8dc6e0a5..385a2475 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,6 +25,9 @@ RUN apk add --no-cache \ exif \ pcntl +# Configure git to allow safe directory +RUN git config --global --add safe.directory /var/www/html + # Install Composer COPY --from=composer:latest /usr/bin/composer /usr/bin/composer @@ -36,33 +39,25 @@ COPY --chown=www-data:www-data . . # Remove any nested vendor directories RUN find . -type d -name "vendor" -not -path "./vendor*" -exec rm -rf {} + 2>/dev/null || true -# Create all necessary directories with proper structure -RUN mkdir -p storage/framework/cache \ - && mkdir -p storage/framework/sessions \ - && mkdir -p storage/framework/views \ - && mkdir -p storage/framework/testing \ +# Remove composer.lock to ensure fresh install +RUN rm -f composer.lock + +# Create all necessary directories +RUN mkdir -p storage/framework/{cache,sessions,views,testing} \ && mkdir -p storage/logs \ && mkdir -p bootstrap/cache \ && mkdir -p storage/framework/cache/data \ && chmod -R 777 storage \ && chmod -R 777 bootstrap/cache -# Create a temporary config to avoid cache path errors -RUN if [ ! -f config/app.php ]; then \ - echo " []];" > config/app.php; \ +# Install PHP dependencies (full install, not just --no-scripts) +RUN composer install --no-interaction --no-progress --optimize-autoloader + +# Verify critical files exist +RUN if [ ! -f vendor/laravel/framework/src/Illuminate/Foundation/resources/server.php ]; then \ + echo "ERROR: server.php missing!" && exit 1; \ fi -# Install PHP dependencies with --no-scripts to avoid cache path issues -RUN composer install --no-interaction --no-progress --optimize-autoloader --no-scripts - -# Fix missing laravel/prompts -RUN if [ ! -f vendor/laravel/prompts/src/helpers.php ]; then \ - composer require laravel/prompts --no-interaction --with-all-dependencies; \ - fi - -# Now run the scripts manually with proper environment -RUN composer run-script post-autoload-dump || true - # Copy package files for NPM COPY package*.json ./ COPY vite.config.js ./ @@ -76,9 +71,8 @@ RUN npm run build || true # Generate application key RUN php artisan key:generate --no-interaction --force || true -# Clear and cache config (but handle missing paths gracefully) -RUN php artisan config:clear || true \ - && php artisan cache:clear || true +# Cache configurations +RUN php artisan config:cache || true COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh