Docker e Docker Compose semplificano la configurazione e la gestione di database come PostgreSQL. Questa guida ti mostrerà come configurare un ambiente di sviluppo con PostgreSQL e PHP utilizzando Docker Compose.
Requisiti
- Docker installato sul tuo sistema
- Docker Compose installato
Passo 1: Creazione della Struttura dei File
Inizia creando una cartella per il tuo progetto con la seguente struttura:
.
|-- docker-compose.yml
|-- php/
| |-- Dockerfile
|-- app/
| |-- index.php
Passo 2: Configurare docker-compose.yml
Il file docker-compose.yml
definirà i servizi necessari, come PostgreSQL e PHP. Ecco un esempio:
version: '3.9'
services:
db:
image: postgres:15
container_name: postgres-container
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql/data
php:
build:
context: ./php
container_name: php-container
volumes:
- ./app:/var/www/html
ports:
- "8080:80"
depends_on:
- db
volumes:
postgres_data:
Passo 3: Creare il Dockerfile per PHP
Il Dockerfile nella cartella php/
configurerà l'ambiente PHP. Ecco un esempio:
FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_pgsql
COPY . /var/www/html
Passo 4: Creare un File PHP
Nella cartella app/
, crea un file index.php
con il seguente contenuto:
<?php
$host = 'db';
$dbname = 'mydb';
$user = 'user';
$password = 'password';
try {
$dsn = "pgsql:host=$host;port=5432;dbname=$dbname;";
$pdo = new PDO($dsn, $user, $password);
echo "Connessione al database riuscita!";
} catch (PDOException $e) {
echo "Errore: " . $e->getMessage();
}
?>
Passo 5: Avviare i Servizi
Ora puoi avviare i container con il comando:
docker compose up -d
Accedi al tuo browser e visita http://localhost:8080
per verificare la connessione al database.
Conclusione
Hai configurato con successo PostgreSQL e PHP utilizzando Docker e Docker Compose. Questo approccio è utile per sviluppare e testare applicazioni in un ambiente isolato.