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 utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

Most Recent

Come creare un watchdog per Cups

In questo scenario ci troviamo su una macchina Linux in cui abbiamo bisogno di monitorare lo stato di Cups e, in caso di crash del

Partners