‘Bij mij werkt het wel’ — de meest gevreesde zin in software development. Docker lost dit op: elke developer, elke server, dezelfde omgeving. Geen verrassingen meer bij deployment.
Waarom Docker voor Laravel?
PHP-versies, MySQL-versies, extensies, configuratie — kleine verschillen tussen development en productie leiden tot bugs die moeilijk te reproduceren zijn. Docker containers garanderen consistentie.
Docker Compose voor Laravel
Een typische Laravel-stack bestaat uit:
- PHP-FPM container
- Nginx webserver
- MySQL database
- Redis voor caching en queues
version: '3.8'
services:
app:
build: .
volumes:
- .:/var/www
depends_on:
- mysql
- redis
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- .:/var/www
- ./docker/nginx.conf:/etc/nginx/conf.d/default.conf
mysql:
image: mysql:8.0
environment:
MYSQL_DATABASE: laravel
MYSQL_ROOT_PASSWORD: secret
volumes:
- mysql_data:/var/lib/mysql
redis:
image: redis:alpine
volumes:
mysql_data:
Dockerfile voor PHP
FROM php:8.3-fpm
RUN apt-get update && apt-get install -y git curl libpng-dev libonig-dev
RUN docker-php-ext-install pdo_mysql mbstring bcmath gd
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
WORKDIR /var/www
Laravel Sail: de eenvoudige variant
Wil je geen Docker Compose zelf beheren? Laravel Sail is een officiële wrapper die een complete development-omgeving opzet met één commando:
curl -s https://laravel.build/app | bash
cd app && ./vendor/bin/sail up
Sail is ideaal voor onboarding van nieuwe developers.
Productie
Voor productie is Docker ook bruikbaar, maar overweeg ook managed oplossingen. Docker in productie vereist orchestratie (Kubernetes, Docker Swarm) bij schaal.
Conclusie
Docker is een must voor professionele Laravel ontwikkeling teams. Het elimineert omgevingsverschillen en maakt onboarding eenvoudig. Bij Meesy gebruiken we Docker standaard voor maatwerk applicaties. Neem contact op als je wil praten over je development workflow.