Capítulo 7 · 7.4
WordPress em Docker
Pretende executar o WordPress no seu VPS em vez de num pacote de alojamento? Com o Docker, coloca o WordPress e uma base de dados lado a lado, e o Caddy trata do https.
Dica: Num pacote de alojamento, a WebOké gere por si o servidor, as atualizações do PHP e as cópias de segurança. Escolha o VPS se precisar mesmo dessa liberdade.
Cada receita parte da pasta de trabalho /srv/diensten com o Caddy de A sua pasta de trabalho com compose.yaml, .env e Caddy. Adiciona um serviço ao compose.yaml, um bloco ao Caddyfile e um registo A e AAAA para o nome (consulte Um registo A e AAAA em Os meus domínios).
1. DNS
Faça com que example.com e www.example.com apontem para o seu VPS com um registo A e AAAA. Se o seu site ainda estiver alojado noutro local, faça isto apenas quando o novo site estiver pronto.
2. Uma palavra-passe da base de dados em .env
anna@web1:/srv/diensten$ openssl rand -base64 24
Coloque o resultado em .env como WP_DB_WACHTWOORD=....
3. compose.yaml
wordpress:
image: wordpress
restart: unless-stopped
environment:
WORDPRESS_DB_HOST: wp-db
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: ${WP_DB_WACHTWOORD}
WORDPRESS_DB_NAME: wordpress
volumes:
- wordpress:/var/www/html
depends_on:
- wp-db
wp-db:
image: mariadb:11.8
restart: unless-stopped
environment:
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: ${WP_DB_WACHTWOORD}
MARIADB_RANDOM_ROOT_PASSWORD: "1"
volumes:
- wp-db:/var/lib/mysql
E em volumes::
wordpress:
wp-db:
A base de dados não recebe ports:: o WordPress encontra-a pelo nome wp-db (consulte Docker e a firewall: publicar portas em segurança).
4. Caddyfile
example.com, www.example.com {
reverse_proxy wordpress:80
}
anna@web1:/srv/diensten$ sudo docker compose up -d
anna@web1:/srv/diensten$ sudo docker compose exec -w /etc/caddy caddy caddy reload
Abra https://example.com e conclua de imediato a instalação do WordPress. A imagem do WordPress reconhece que se encontra atrás de um proxy https.
Atualizar
- O WordPress, os plugins e os temas são atualizados no painel do WordPress, como habitualmente. Encontram-se no volume
wordpress. - O PHP e o servidor web fazem parte da imagem. Atualize-os com
docker compose pulleup -d(consulte Atualizar contentores, limpar e limitar os registos).
Correio e cópia de segurança
O WordPress envia mensagens de correio eletrónico (palavra-passe esquecida, formulários). Como a porta 25 está fechada, utilize um plugin SMTP com uma caixa de correio na porta 587 (consulte DNS inverso e envio de e-mail a partir do seu VPS). Para a sua cópia de segurança precisa de duas coisas: uma exportação (dump) da base de dados e o volume wordpress com os seus ficheiros carregados. Consulte Incluir corretamente bases de dados e volumes Docker na cópia de segurança.
Encontra mais informações sobre o próprio WordPress, como plugins e segurança, no curso de WordPress.
