Como você desenvolve seus plugins e temas WordPress? Apenas codifica e testa em produção? Ou usa o XAMPP, WAMP no Windows, e LEMP ou LAMP no Linux? O que vamos propor aqui é usar o Docker para criar um ambiente isolado, facilmente editável e leve. Com ele, criar novos temas e plugins será super fácil.
Pré-Requisitos
- Docker
- Docker Compose
- IDE (como VSCode, PhpStorm ou JetBrains Fleet)
Estrutura do nosso projeto
Nosso objetivo é criar um docker-compose
que nos permita desenvolver plugins ou temas em WordPress. Nossa estrutura contará com duas pastas (uma para plugins e outra para temas) e um arquivo docker-compose.yml
. Todo o restante do WordPress ficará “oculto” no volume wordpress_data
, fora do nosso fácil acesso. Caso você precise alterar, por exemplo, o arquivo de configuração ou outra pasta, mostraremos como fazer isso mais abaixo.
Criando o Docker Compose para o WordPress
Nosso docker-compose irá gerenciar dois serviços: um com MariaDB (poderia ser MySQL) e outro com o próprio WordPress. Iniciando pelo banco, temos a seguinte estrutura:
Criando um servidor mariaDB via docker compose
services:
db:
image: mariadb
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: codeinloop_root
MYSQL_DATABASE: wordpress
MYSQL_USER: codeinloop_user
MYSQL_PASSWORD: codepass
volumes:
db_data: {}
YAMLNo arquivo anterior, estamos definindo a imagem do banco de dados como image: mariadb
, de forma implícita como a última versão (latest). Fazemos isso para não deixar nosso código desatualizado com o passar do tempo. Nomeamos o serviço como db
, e usaremos isso mais adiante como link de conexão. Definimos a porta como 3307; porém, por se tratar de um serviço que pode ser acessado apenas pelo Docker e pelo WordPress, essa linha seria opcional. Entretanto, caso você queira usar um cliente de banco de dados como DBeaver ou PhpMyAdmin, poderá acessar usando o endereço localhost na porta 3307. Em environment
, estamos apenas definindo login e senhas do banco de dados, que usaremos no WordPress.
Criando um servidor WordPress via docker compose
Uma vez que já temos o nosso banco de dados, podemos criar o servidor do WordPress. Para isso, usaremos a imagem oficial do WordPress, disponível no Docker Hub. Nessa página, você poderá escolher todas as opções de configuração. No momento deste artigo, usaremos a versão latest
, porém é possível alterar para uma compatível com seu projeto.
![](https://codeinloop.com.br/wp-content/uploads/2024/05/docker_hub_wordpress_tags.png)
Também vamos definir que esse container só seja iniciado após o banco de dados estar pronto, usando a tag depends_on
. Em complemento a essa tag, poderíamos definir o healthcheck
.
Vamos configurar os volumes com três linhas: nas duas primeiras, indicamos o local onde temos a pasta de plugins e temas, e na última definimos o volume para as demais informações. Diferente do caso do banco de dados, neste momento, quando estamos definindo a porta, queremos que ela seja acessível por nós e por isso a definimos. Para acessar, use o endereço: http://localhost:8000. Caso queira que fique na porta 80 ou outra diferente, basta mudar o valor antes dos dois pontos (:). Por fim, definimos os valores de conexão com o banco de dados.
services:
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./themes:/var/www/html/wp-content/themes
- ./plugins:/var/www/html/wp-content/plugins
- wordpress_data:/var/www/html
ports:
- '8000:80'
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
volumes:
wordpress_data: {}
YAMLExecutando o WordPress localmente
Agora que já definimos o nosso docker-compose
, podemos iniciá-lo da seguinte forma:
docker compose up -d
YAMLEm seguida, acesse http://localhost:8000 para fazer a primeira configuração, indicando idioma, login e senha do administrador do WordPress.
Conclusão
Sabia que era tão fácil configurar um ambiente para desenvolver em WordPress? Agora, com uma IDE, você já pode começar a construir seus temas e plugins. Caso você queira debugar o código pela sua IDE, será necessário adaptar o docker-compose
. Se tiver essa necessidade, comente aqui ou deixe nos comentários como você faz. Lembrando que este projeto completo está disponível em nosso Github.