Docker Compose para WordPress


A configuração e gerenciamento de ambientes de desenvolvimento pode ser um desafio, especialmente quando precisamos lidar com múltiplos serviços que devem interagir entre si, como o WordPress, MySQL e phpMyAdmin. Felizmente, ferramentas como o Docker e Docker Compose simplificam enormemente esse processo, permitindo que desenvolvedores configurem rapidamente ambientes consistentes e isolados.

O Docker Compose é uma ferramenta poderosa que permite definir e gerenciar aplicativos multi-contêiner. Usando um simples arquivo docker-compose.yml, podemos orquestrar a criação, configuração e ligação de múltiplos serviços, tornando o processo de desenvolvimento mais eficiente e menos propenso a erros.

Segue abaixo o docker-compose.yml que eu uso no dia a dia para desenvolvimento, mas antes, crie uma rede docker chamada proxy.

docker network create proxy

services:

  traefik:
    image: "traefik"
    container_name: "traefik"
    restart: always
    command:
      - "--log.level=DEBUG"
      - "--api.insecure=true"
      - "--providers.docker=true"
      - "--providers.docker.exposedbydefault=false"
      - "--entrypoints.web.address=:80"
    ports:
      - "80:80"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
    networks:
      - proxy

  wordpress:
    container_name: wordpress
    image: wordpress
    restart: always
    networks:
      - proxy
    environment:
      WORDPRESS_DB_HOST: wordpress
      WORDPRESS_DB_USER: user
      WORDPRESS_DB_PASSWORD: password
      WORDPRESS_DB_NAME: dbname
    volumes:
    - ./wordpress:/var/www/html
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.wordpress.rule=Host(`wordpress.docker.localhost`)"
      - "traefik.http.routers.wordpress.entrypoints=web"

  mysql:
      image: ubuntu/mysql:latest
      container_name: mysql
      restart: always
      networks:
        - proxy
      ports:
        - 3306:3306
        - 33060:33060
      environment:
        MYSQL_DATABASE: wordpress
        MYSQL_USER: user
        MYSQL_PASSWORD: password
        MYSQL_RANDOM_ROOT_PASSWORD: '1'
      cap_add:
      - SYS_NICE
      volumes:
        - ./database:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin
    container_name: "phpmyadmin"
    restart: always
    networks:
      - proxy
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.phpmyadmin.rule=Host(`phpmyadmin.docker.localhost`)"
      - "traefik.http.routers.phpmyadmin.entrypoints=web"
    environment:
      - PMA_ARBITRARY=1

networks:
  proxy:
    external: true

Você pode conferir este docker-compose.yml no Gist



Categorias: Docker, Geral
Tags: ,


One thought on “Docker Compose para WordPress”
  1. Márcio Ferreira disse:

    Show. Obrigado. Só uma observação: não é necessário mais usar a versão no Docker compose. Foi depreciado.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *