Desenvolvendo para WordPress com Docker, Git e WP-CLI
1. Desenvolvendo para WordPress
com Docker, Git e WP-CLI
Como construir um ambiente de desenvolvimento
inteligente para um workflow mais prático e ágil
2. Rudá Almeida
Integrante da equipe de Tecnologia da
Informação da UFRJ
Entusiasta do WordPress e integrante
da comunidade carioca
Já palestrei e ajudei a organizar
Meetups e WordCamps no Rio de Janeiro
4. O que é
Gerencia o WordPress via linha de comando
Simplifica tarefas tediosas e repetitivas
Dispensa o uso do navegador
Automação e programabilidade
9. Atualizando o core e os plugins
$ wp core update
$ wp plugin update --all
$ wp theme update --all
10. Para saber mais sobre WP-CLI
“Dominando o WP-CLI”,
Gustavo Bordoni - WordPress
Meetup RJ de junho de 2016
“WP-CLI: o WordPress na linha
de comando”, Rodrigo Primo” -
InterConWP 2014
“Gerenciando o WordPress com
o WP-CLI”, Rodrigo Primo” -
WordCamp BH 2014
12. O que é
Sistema de controle de versionamento
Guarda histórico das alterações nos arquivos
Permite “voltar no tempo” a pontos específicos
Permite colaboração entre um time
Descentralizado
13. Git é uma skill essencial para todo
desenvolvedor WordPress
14. Git é uma skill essencial para todo
desenvolvedor PHP
15. Git é uma skill essencial para todo
desenvolvedor back-end
16. Git é uma skill essencial para todo
desenvolvedor front-end
17. Git é uma skill essencial para todo
desenvolvedor
24. Para saber mais sobre Git
Uma das 76 mil questões com
a tag “Git” no Stack Overflow
O livro “Pro Git”, de Scott
Chacon e Ben Straub
O curso interativo “Try Git”,
parceria entre Code School e
Github (gratuito)
26. O que é
Plataforma de virtualização baseada em
contêineres
Extremamente rápido e leve em tamanho e uso
de recursos
Modular e extensível
Replicabilidade e comportamento previsível
Versatilidade: a configuração do ambiente de
desenvolvimento não fica mais presa à
configuração da máquina local
Garantia de que desenvolvimento e produção
possuem ambientes idênticos
Atualizações de pacotes na máquina local não
causam interferência no ambiente de
desenvolvimento.
Simplifica subir ambientes complexos em
poucos comandos.
29. Keep calm e lembre do bolo
Imagem => Bolo
Dockerfile => Receita do bolo
Contêiner => Fatia do bolo
Registry / Docker Hub => Padaria
Docker build => Fazer um bolo
Docker pull => Comprar pronto
Docker run => Cortar uma fatia
Imagem: Freepik
39. A imagem oficial do WordPress vem com opcache ativado.
Alterações em arquivos PHP demoram até 60 segundos para ser
reconhecidas. Para desativar o opcache, edite o arquivo
/usr/local/etc/php/conf.d/opcache-recommended.ini
40. Contêineres perdem seus dados ao serem encerrados. Para
garantir a permanência dos dados, use contêineres de
volume, ou volumes da máquina hospedeira com --volume
Ao usar volumes, preste atenção às permissões das pastas e
arquivos do host. Se o host usar SELinux, use ":z" no final
dos caminhos.
41. Para rodar um contêiner em background, use -d
Para visualizar os logs de um contêiner em background, use:
docker logs -f <container>
42. Para ter acesso ao terminal dentro de um contêiner:
docker exec -it <container> bash
43. Deixe a porta do contêiner MySQL visível para o host, dessa
forma o MySQL WorkBench ou o adminer podem
manipular os dados diretamente
44. Contêineres não são apagados ao ter sua execução
interrompida (a menos que executados com a opção --rm),
e devem ser apagados manualmente.
45. Se já existir um contêiner com o mesmo nome, o Docker se
recusa a criar um novo contêiner.
Se um contêiner estiver em execução, deve ser parado
manualmente para poder ser excluído.
Se ocorrer um erro na criação do conteiner, ele deve ser
excluido manualmente assim mesmo
47. O que é
Controla e gerencia instâncias de contêineres com base em arquivos de
configuração.
Cuida das tarefas de iniciar, reiniciar, manter executando, parar a execução,
remover, e criar novamente cada contêiner
Detecta alterações nos arquivos de configuração e recria apenas o que for necessário
docker-compose up -d
Docker-compose down
Com apenas quatro comandos, o WP-CLI:
baixa e descompacta o core do WordPress,
cria e popula o arquivo wp-config.php,
cria o banco de dados no MySQL e preenche os dados de instalação.
Não é preciso nem abrir o navegador: o WordPress já está instalado, com o seu famoso post de “Hello World”.
Nos comandos ao lado, o WP-CLI lista os plugins, baixa o plugin “Advanced Custom Fields” do repositório oficial, instala este plugin, depois ativa e finalmente mostra o novo plugin na lista de plugins instalados.
Nos comandos ao lado, o WP-CLI atualiza o core do WordPress e depois verifica entre os plugins instalados quais estão desatualizados e faz a sua atualização. Os downloads são feitos do repositório oficial.