feat: fix dockerfile
CI / 🧪 Tests Laravel (push) Successful in 1m55s
CI / 🐳 Build & Push Image (push) Failing after 6s

This commit is contained in:
2026-07-16 15:44:03 +02:00
parent 5cf0510aa5
commit edb7f6d2a1
4 changed files with 208 additions and 63 deletions
+30 -48
View File
@@ -1,61 +1,43 @@
# --- Étape de Build (Composer) ---
FROM composer:2 AS composer-bin
FROM dunglas/frankenphp:php8.4-alpine
FROM dunglas/frankenphp:1.3-php8.4-alpine AS composer-build
WORKDIR /app
WORKDIR /var/www/html
COPY --from=composer-bin /usr/bin/composer /usr/bin/composer
RUN install-php-extensions intl zip bcmath pdo_pgsql pcntl redis
COPY . .
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
# --- Étape de Build (Node) ---
FROM node:20-alpine AS node-build
WORKDIR /var/www/html
COPY package*.json ./
RUN npm ci
COPY --from=composer-build /var/www/html/vendor ./vendor
COPY . .
RUN npm run build
# --- Étape Finale (Production) ---
FROM dunglas/frankenphp:1.3-php8.4-alpine
# On installe les extensions pour le fonctionnement de l'app en prod
RUN apk add --no-cache \
libpq-dev \
libpng-dev \
libjpeg-turbo-dev \
freetype-dev \
icu-dev
RUN install-php-extensions \
intl \
pdo_pgsql \
gd \
zip \
opcache \
pcntl \
redis
zip \
intl
WORKDIR /var/www/html
COPY --from=composer-build /var/www/html /var/www/html
COPY --from=node-build /var/www/html/public/build /var/www/html/public/build
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
# Permissions (crucial pour Laravel)
RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache
ENV APP_ENV=production
ENV APP_RUNTIME=Laravel\FrankenPHP\Runtime
COPY composer.json composer.lock ./
HEALTHCHECK NONE
RUN composer install \
--no-dev \
--no-interaction \
--prefer-dist \
--optimize-autoloader \
--no-scripts
CMD ["sh", "-c", "php artisan migrate --force && php artisan storage:link && php artisan optimize && php artisan view:cache && php artisan event:cache && frankenphp run --config /etc/caddy/Caddyfile"]
COPY . .
RUN composer dump-autoload --optimize
RUN chown -R www-data:www-data storage bootstrap/cache
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
EXPOSE 8002
ENTRYPOINT ["/entrypoint.sh"]