Dockerize Laravel App
# Stage 1: Build Laravel Application
FROM composer:2 AS composer
WORKDIR /app
COPY . .
RUN rm -f .env
RUN composer update
RUN composer install --no-dev
# Stage 2: Final Image
FROM php:8.3-fpm-alpine
WORKDIR /var/www/html
RUN docker-php-ext-install pdo pdo_mysql
COPY --from=composer /app .
CMD ["php", "artisan", "serve", "--host=0.0.0.0"]
Docker Compose
version: '3.8'
services:
app:
image: laravel/laravel
environment:
APP_ENV: production
APP_KEY: base64:IkpV7upEVtsaFPo7yUeE7M2cknBww9N8vglFG5J2NdN=
DB_HOST: dbts
DB_PORT: 3306
DB_DATABASE: laravel
DB_USERNAME: root
DB_PASSWORD:
ports:
- "9090:8000"
depends_on:
- dbts
networks:
- laravel-network
dbts:
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_DATABASE: laravel
MYSQL_ALLOW_EMPTY_PASSWORD: true
networks:
- laravel-network
networks:
laravel-network:
driver: bridge