Salta al contenuto principale
Tecnologia

Docker per Sviluppatori PHP: Setup Perfetto per Laravel

Configura un ambiente di sviluppo Docker ottimizzato per progetti Laravel.

Giovanni D'Ippolito
2 min di lettura
Autore
Giovanni D'Ippolito
Pubblicato
23 November 2025
Lettura
2 minuti
Tags
#Docker #DevOps #Laravel #Development

Perché Docker?

Docker garantisce che tutti gli sviluppatori lavorino con lo stesso ambiente, eliminando il classico "funziona sul mio computer".

Struttura del Progetto

Organizza i file Docker:

project/
├── docker/
│   ├── nginx/
│   │   └── default.conf
│   ├── php/
│   │   └── Dockerfile
│   └── mysql/
│       └── my.cnf
├── docker-compose.yml
└── .env

Docker Compose

File docker-compose.yml:

version: '3.8'

services:
  app:
    build:
      context: ./docker/php
      dockerfile: Dockerfile
    container_name: laravel_app
    restart: unless-stopped
    working_dir: /var/www
    volumes:
      - ./:/var/www
    networks:
      - laravel

  nginx:
    image: nginx:alpine
    container_name: laravel_nginx
    restart: unless-stopped
    ports:
      - "80:80"
    volumes:
      - ./:/var/www
      - ./docker/nginx:/etc/nginx/conf.d
    networks:
      - laravel

  mysql:
    image: mysql:8.0
    container_name: laravel_mysql
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: laravel
      MYSQL_ROOT_PASSWORD: secret
      MYSQL_USER: laravel
      MYSQL_PASSWORD: laravel
    volumes:
      - mysql_data:/var/lib/mysql
      - ./docker/mysql:/etc/mysql/conf.d
    ports:
      - "3306:3306"
    networks:
      - laravel

  redis:
    image: redis:alpine
    container_name: laravel_redis
    restart: unless-stopped
    ports:
      - "6379:6379"
    networks:
      - laravel

networks:
  laravel:
    driver: bridge

volumes:
  mysql_data:
    driver: local

PHP Dockerfile

File docker/php/Dockerfile:

FROM php:8.2-fpm

# Install system dependencies
RUN apt-get update && apt-get install -y \
    git \
    curl \
    libpng-dev \
    libonig-dev \
    libxml2-dev \
    zip \
    unzip

# Clear cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Install PHP extensions
RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd

# Install Redis extension
RUN pecl install redis && docker-php-ext-enable redis

# Install Composer
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer

# Set working directory
WORKDIR /var/www

# Copy application
COPY . .

# Install dependencies
RUN composer install --no-interaction --optimize-autoloader

# Set permissions
RUN chown -R www-data:www-data /var/www
Con Docker, l'intero team usa le stesse versioni di PHP, MySQL, Redis e altre dipendenze!

Articoli Correlati

Tecnologia

REST API vs GraphQL: Quale Scegliere nel 2024?

Un confronto approfondito tra REST e GraphQL per aiutarti a scegliere la soluzione giusta...

15 Nov 2025 Leggi
Tecnologia

Modern JavaScript per Sviluppatori PHP

Le funzionalità JavaScript moderne che ogni sviluppatore PHP dovrebbe conoscere.

09 Dec 2025 Leggi
Tecnologia

WordPress vs CMS Custom: Quale Scegliere per il Tuo Progetto?

Analisi approfondita dei pro e contro di WordPress rispetto a un CMS sviluppato su misura...

11 Dec 2025 Leggi

Rimani Aggiornato

Iscriviti alla nostra newsletter per ricevere gli ultimi articoli direttamente nella tua casella di posta.