Como rodar WordPress no WSL com Docker
Se você precisa fazer algum desenvolvimento em WordPress - por exemplo, para criar um tema ou um plugin - e trabalha com uma máquina Windows, vou te ensinar um jeito bem fácil de criar seu ambiente de desenvolvimento.
Subir um ambiente WordPress em contêiner é relativamente tranquilo. Combinando o WSL com o Docker, então, deixa tudo ainda mais fácil.
Este post parte das seguintes premissas:
- Você está trabalhando no Windows;
- Você já tem o Docker Desktop instalado;
- Você já tem o WSL (Windows Subsystem for Linux) instalado, e a integração entre o WSL e o Docker já está ativada; e
- Você tem o Visual Studio Code instalado.
Tudo pronto? Então vamos lá!
Criando seu ambiente WordPress
Para rodarmos o WordPress em contêineres usando o Docker, precisaremos do Docker Compose. Com ele, a gente consegue subir um conjunto de dois contêineres - um para o WordPress em si, outro para o MySQL do backend.
Um arquivo YAML básico para o compose do WordPress se parece com o seguinte:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wp-data-vol:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
expose:
- 3306
- 33060
volumes:
wp-data-vol:
db:
Para nosso exemplo, vamos considerar que você esteja desenvolvendo um tema para o WordPress chamado Meu Super-Tema. É, eu sei, nada criativo…
A primeira coisa é criar uma pasta para armazenar a sua instância do WordPress. Para isso, abra o shell do WSL e digite:
1
2
3
4
cd ~
mkdir -p ~/wordpress/meu-super-tema
cd ~/wordpress/meu-super-tema
code .
Agora, antes de seguirmos em frente, uma palavrinha sobre os volumes do Docker.
Volumes de dados
Uma parte importante da configuração do nosso ambiente é a questão dos volumes. Isso porque, se você vai desenvolver plugins e temas para o WordPress, você vai querer que a pasta com seus arquivos PHP esteja facilmente acessível a partir do host (WSL / Windows).
Por isso, ao invés de deixarmos o Docker Compose gerenciar os volumes automaticamente para nós, iremos declarar nossos volumes de modo que eles sejam montados em diretórios locais no WSL. Daí fica muito fácil você rodar, por exemplo, o Visual Studio Code diretamente no Windows e conectado na pasta do seu tema / plugin.
A primeira coisa para isso é criar a pasta onde iremos armazenar o conteúdo do WordPress:
1
mkdir -p ~/wordpress/meu-super-tema/data/wp-data-vol
Agora, vamos alterar a declaração do nosso volume de dados do WordPress para que ele aponte para essa pasta:
1
2
3
4
5
6
7
8
9
10
11
12
13
version: '3.1'
services:
#...
#...
#...
volumes:
wp-data-vol:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/home/<nome-usuario>/wordpress/data/wp-data-vol'
db:
Crie o arquivo wp.yml
contendo nossa configuração do Docker Compose. A versão final no nosso arquivo, para você copiar e colar, é:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 8080:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- wp-data-vol:/var/www/html
db:
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- db:/var/lib/mysql
expose:
- 3306
- 33060
volumes:
wp-data-vol:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/home/<nome-usuario>/wordpress/data/wp-data-vol'
db:
Não se esqueça de trocar <nome-usuario>
pelo seu nome de usuário no WSL.
Rodando o WordPress
Com isso, nosso ambiente está pronto! Para rodar o WordPress, basta executar no shell do WSL:
1
docker compose -f ~/wordpress/meu-super-tema/wp.yml up
E repare como o WordPress irá preencher a pasta ~/wordpress/meu-super-tema/data/wp-data-vol
com todos os seus arquivos PHP:
Para editar seu tema / plugin, só criar a pasta no local correspondente dentro da pasta wp-contents
.
Conclusão
Neste post, vimos como é fácil criar um ambiente de desenvolvimento para WordPress usando o WSL e o Docker. Combinando essas duas tecnologias, podemos criar um ambiente de desenvolvimento completo e isolado em poucos minutos.
Além disso, aprendemos sobre volumes de dados e como eles podem ser usados para facilitar o desenvolvimento de temas e plugins para WordPress.
Espero que este post tenha sido útil para você e que possa ajudá-lo a criar seus próprios ambientes de desenvolvimento para WordPress. Se tiver alguma dúvida ou sugestão, deixe um comentário abaixo!
Um abraço,
Igor
13/07/2023 | Por Igor Abade V. Leite | Em Técnico | Tempo de leitura: 3 mins.