Negli ultimi mesi ho smanettato parecchio con un programma che non conoscevo, ossia Docker. Fino ad oggi ho sempre sviluppato applicazioni in locale utilizzando i classici “pacchetti” come LAMP o WAMP, anche perché non avevo particolari necessità. Ma ora che mi trovo a lavorare su un progetto molto complesso ed articolato ecco che servono particolari funzioni che i software più basici non offrono.

Senza farla troppo lunga, una cosa che ho notato è che le spiegazioni e le documentazioni per usare questo programma sono molto verbose e spesso poco intuitive. In rete si trovano moltissimi articoli che dovrebbero spiegarci come usarlo con semplicità, ma in realtà non fanno altro che complicarci le idee. Aggiriamo dunque l’ostacolo.

Quello che mi interessava, ovviamente, era creare un container contenente WordPress, MySQL e PhpMyAdmin. Se eseguite un pull delle tre distinte immagini non ne otterrete nulla, perché Docker Desktop vi fa avviare un container per ogni immagine che lanciate. Come fare? Ho risolto creandomi questo codide standard:

services:
  wordpress:
    depends_on:
      - db
    image: wordpress
    restart: always
    # volumes: ['./:/var/www/html']
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: nomeutente-wp
      WORDPRESS_DB_PASSWORD: passutente-wp
      WORDPRESS_DB_NAME: dbprova
    ports:
      - 8000:80
    ## install mysql driver
    # command: ["docker-php-ext-install", "mysqli pdo pdo_mysql"]
    networks:
      - wpsite
  db:
    image: mysql
    restart: always
    volumes:
      - ~/path_to/database:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: dbprova
      MYSQL_USER: nomeutente-db
      MYSQL_PASSWORD: passutente-db
    networks:
      - wpsite
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: rootpass
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  database:

Copiate il tutto anche nel blocco note, dopodiché salvate con nome e create un file chiamato docker-compose.yml. A questo punto, copiate il file in una cartella nominata come il vostro progetto, perché il container che si creerà nel programma avrà il nome della cartella.

A questo punto, avviate il prompt dei comandi e, dopo esservi spostati nella cartella contenente il file, lanciate il comando docker-compose up. A questo punto partirà il download delle varie immagini (se non sono già state scaricate) e la creazione del container con tutti i servizi integrati.

Potete utilizzare questo file ogni qualvolta vorrete, e potrete impostare le vostre variabili (nome del database, username e password) semplicemente modificando i campi evidenziati in rosso. In questo modo sarete in grado di creare un ambiente di test/sviluppo nel giro di pochi minuti, con tutti i vantaggi offerti dal programma.

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.