Se estou executando o Wordpress em um ambiente Kubernetes, onde o código faz parte de uma imagem do Docker e alguém tenta adicionar um plugin através do administrador do Wordpress, não espero que funcione muito bem, pois o plugin só será instalado no container que é atingido quando adicionam o plugin, certo?
Minha abordagem de construir o código em uma imagem é um passo em falso? Outra abordagem que considerei foi um volume que contém o código, que lidaria bem com esse caso de uso. Existe uma discussão de tais coisas que eu poderia ler em algum lugar?
Supondo que você seja obrigado a permitir que os usuários do wordpress instalem/atualizem plugins, gravar o wordpress em uma imagem do Docker não funcionará: ou você permite que o aplicativo seja atualizado apenas distribuindo uma nova imagem do docker ou não. O que você quer fazer permite que as atualizações do aplicativo venham de duas fontes.
Caso não tenha tal requisito, basta adicionar:
para wp-config.php e pronto. Certifique-se de que, ao atualizar sua imagem do Docker com uma nova versão do Wordpress, o esquema do banco de dados seja atualizado adequadamente e todas as versões do Wordpress atualmente em execução possam usar esse esquema db.
Se você não pode desabilitar a instalação/atualização do plugin, você precisa resolver 2 problemas:
1) Você precisa que todos os containers acessem a mesma instalação do wordpress.
Os arquivos em disco em um contêiner são efêmeros, o que significa que quando um contêiner trava, o kubelet o reiniciará, mas os arquivos serão perdidos - toda vez que você obtiver uma ficha limpa.
Uma solução típica para esse problema é criar um volume apenas para armazenar sua instalação do wordpress e montá-lo em todos os containers do Pod, assim:
Mais informações:
https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/
2) Você precisa tornar o armazenamento do volume compartilhado confiável/redundante. O Kubernetes oferece muitas opções que variam dependendo de onde você está executando sua instalação do Kubernetes. Se você estiver em uma nuvem pública, use o que essa nuvem disponibilizar (por exemplo, EFS na AWS), se você estiver no local, talvez queira examinar glusterfs ou se tiver uma SAN existente, use isso.
Mais informações em: https://kubernetes.io/docs/concepts/storage/volumes/
Em relação ao seu pedido de alguma bibliografia sobre o tema, você encontrará muitos documentos informando que sua inscrição deve fazer parte da imagem, por exemplo, ponto 7 em:
https://developers.redhat.com/blog/2016/02/24/10-things-to-avoid-in-docker-containers/
mas, novamente, isso pressupõe que o aplicativo só pode ser atualizado/modificado pelo administrador, não pelos usuários finais. Você deve contextualizar as sugestões que você encontra na web para seus requisitos específicos.