Come inizializzare un progetto Laravel con Docker

Cerca

Laravel è un framework PHP per applicazioni web che permette allo sviluppatore di semplificare alcune delle attività più comuni dei progetti web, come ad esempio autenticazione, autorizzazione, routing, sessioni e caching.

Essendo Laravel ampiamente diffuso, in questo articolo affrontiamo il problema della containerizzazione di un progetto Laravel. Vediamo quindi come creare un progetto Laravel in un container Docker.

Opzione 1: Usiamo la command line utility Docker

Per amministrare Docker non c’è cosa migliore che l’utility a riga di comando. Vediamo quindi come istanziare il nostro progetto Laravel in pochi comandi.

Creazione della Docker network

La prima cosa da fare è creare la Docker network che verrà usata dai container della nostra applicazione Laravel.

				
					sudo docker network create laravel-network
				
			
Creazione del Docker volume per MariaDB

Ora è necessario creare un Docker volume per garantire la persistenza dei dati di MariaDB.

				
					sudo docker volume create --name mariadb_data
				
			
Istanziare il container di MariaDB

Creiamo quindi il container Docker di MariaDB

				
					sudo docker run -d --name mariadb \
  --env ALLOW_EMPTY_PASSWORD=yes \
  --env MARIADB_USER=laravel \
  --env MARIADB_DATABASE=app_db \
  --network laravel-network \
  --volume mariadb_data:/bitnami/mariadb \
  bitnami/mariadb:latest
				
			
Avviare il container utilizzando la directory corrente come volume (bind mounting)
				
					sudo docker run -d --name laravel-app \
  -p 8000:8000 \
  --env DB_HOST=mariadb \
  --env DB_PORT=3306 \
  --env DB_USERNAME=laravel \
  --env DB_DATABASE=app_db \
  --network laravel-network \
  --volume ${PWD}/my-project:/app \
  bitnami/laravel:latest
				
			

Opzione 2: Usiamo il docker-compose.yml

Le stesse operazioni che abbiamo eseguito usando l’utility a riga di comando di Docker, le possiamo condensare nel file di configurazione docker-compose.yml per poi eseguirle lanciando l’utility docker compose. Il file Yaml è il seguente:
				
					version: '3.8'
services:
  app:
    image: bitnami/laravel:latest
    container_name: laravel-app
    restart: unless-stopped
    environment:
      DB_HOST: mariadb
      DB_PORT: 3306
      DB_USERNAME: laravel
      DB_DATABASE: app_db
    volumes:
      - ./my-project:/app
    ports:
      - "8000:8000"
    networks:
      - laravel-network
  
  db:
    image: bitnami/mariadb:latest
    container_name: mariadb
    restart: unless-stopped
    environment:
      ALLOW_EMPTY_PASSWORD: yes
      MARIADB_USER: laravel
      MARIADB_DATABASE: app_db
    volumes:
      - mariadb_data:/bitnami/mariadb
    networks:
      - laravel-network
volumes:
  mariadb_data:
    driver: local
networks:
  laravel-network:
    driver: bridge
				
			

Lanciamo quindi il seguente comando per istanziare i container della nostra applicazione Laravel:

				
					sudo docker compose up -d
				
			

Considerazioni finali

In questo articolo abbiamo visto come creare in pochi comandi una applicazione Laravel in un Docker container. Abbiamo usato come base l’immagine Docker ufficiale bitnami/laravel. Per approfondimenti, fare riferimento alla documentazione ufficiale dell’immagine https://hub.docker.com/r/bitnami/laravel/

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent
Partners