Vai al contenuto

WordPress+Docker | Creare un sito locale con Docker

In alternativa a sistemi più semplici, è possibile creare un sito locale con Docker, che permette di creare ambienti con specifiche necessità in termini di database e versioni di PHP specifiche. Questo non è possibile con XAMPP che crea un ambiente virtuale con le stesse caratteristiche per tutti i siti

Creare il file che indicherà come creare l’ambiente: docker-compose.yml

La forza di questo sistema è la possibilità di inserire la cartella per le impostazioni di Docker in qualsiasi punto si necessita.

Nella cartella del progetto andremo a creare un file di nome docker-compose.yml, ecco un esempio:

# create a local .env file with the following 4 properties:
#
# MYSQL_DATABASE=<something>
# MYSQL_USER=<something>
# MYSQL_PASSWORD=<something>
# MYSQL_ROOT_PASSWORD=<something>
#
version: "3.8"

services:

  database:
    # We use a mariadb image which supports both amd64 & arm64 architecture
    image: mariadb:10.6.4-focal
    restart: unless-stopped
    ports:
      - 3306:3306
    env_file: .env
    environment:
      MYSQL_ROOT_PASSWORD: '${MYSQL_ROOT_PASSWORD}'
      MYSQL_DATABASE: '${MYSQL_DATABASE}'
      MYSQL_USER: '${MYSQL_USER}'
      MYSQL_PASSWORD: '${MYSQL_PASSWORD}'
    volumes:
      - db-data:/var/lib/mysql
    networks:
      - wordpress-network
    deploy:
      resources:
        limits:
          memory: 2048m

  phpmyadmin:
    depends_on:
      - database
    image: phpmyadmin/phpmyadmin
    restart: unless-stopped
    ports:
      - 8081:80
    env_file: .env
    environment:
      PMA_HOST: database
      MYSQL_ROOT_PASSWORD: '${MYSQL_ROOT_PASSWORD}'
    networks:
      - wordpress-network

  wordpress:
    depends_on:
      - database
    image: wordpress:6.2.2-apache
    restart: unless-stopped
    ports:
      - 8080:80
    env_file: .env
    environment:
      WORDPRESS_DB_HOST: database:3306 # use the same name as database service
      WORDPRESS_DB_NAME: '${MYSQL_DATABASE}'
      WORDPRESS_DB_USER: '${MYSQL_USER}'
      WORDPRESS_DB_PASSWORD: '${MYSQL_PASSWORD}'
    volumes:
      - ./wp-content:/var/www/html/wp-content
    networks:
      - wordpress-network

volumes:
  db-data:

networks:
  wordpress-network:
    driver: bridge  

Creare l’ambiente virtuale: .env

Si andranno poi a dare le indicazioni per l’ambiente virtuale con il file .env

Qui un esempio:

MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=wp_password
MYSQL_ROOT_PASSWORD=root_password

Creare l’ambiente

Installare Docker, aprile la shell e digitare il comando per creare l’ambiente

docker compose up

Si attiveranno automaticamente le immagini wordpress, database e php, a questo punto andare su http://localhost:8080/ e installare come al solito WordPress, mentre per quanto riguarda queste informazioni è possibile vedere il database http://localhost:8081/ con le credenziali inserite nel file .env

Repository della cartella: https://github.com/MapoDesign/WordPress-Docker

Lascia un commento

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