feat: fix dockerfile
This commit is contained in:
+30
-48
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user