api/Dockerfile

35 lines
971 B
Docker

# -----------------------------
# Étape 1 : build (composer)
# -----------------------------
FROM laravelsail/php84-composer AS build
WORKDIR /var/www/html
# On copie d'abord les fichiers composer pour profiter du cache Docker
COPY composer.json composer.lock ./
# Installation des dépendances PHP en mode production
RUN composer install --no-dev --no-interaction --prefer-dist --optimize-autoloader
# On copie le reste du projet (code Laravel, config, etc.)
COPY . .
# -----------------------------
# Étape 2 : image runtime
# -----------------------------
FROM laravelsail/php84-composer
WORKDIR /var/www/html
# On récupère tout ce qui a été préparé dans l'étape build
COPY --from=build /var/www/html /var/www/html
# On désactive l'ENTRYPOINT par défaut de l'image de base
ENTRYPOINT []
# On expose le port HTTP du serveur Laravel
EXPOSE 80
# Commande de démarrage : serveur Laravel
CMD ["php", "artisan", "serve", "--host=0.0.0.0", "--port=80"]