É uma maneira fácil de configurar a implantação automatizada de aplicativos com um front -end, um banco de dados e algumas senhas e chaves de acesso jogadas para uma boa medida. Toda vez que você executa o Docker-Compose de dentro de um diretório que contém um Docker-Compose.YML passa pelo arquivo e implanta seu aplicativo conforme especificado.
Para ajudá-lo a escrever seu próprio docker-composição.YML aqui são 5 simples e, esperançosamente, trechos de iaml úteis que você pode misturar e combinar.
Provavelmente o aplicativo mais comum a ser implantado como um contêiner do docker é nginx. Nginx pode servir como servidor proxy reverso e como ponto de terminação SSL para seus aplicativos da Web. Diferentes sistemas de gerenciamento de conteúdo, como Ghost e WordPress, podem ser hospedados atrás de um único servidor de proxy reverso NGINX e, portanto, faz sentido ter um snippet de servidor nginx útil o tempo todo. A primeira coisa que você precisaria é um arquivo de configuração nginx. Se você optar por não criar um, o servidor HTTP padrão é o que você receberá.
Por exemplo, eu criaria uma pasta Nginx-Configuração na minha pasta doméstico. O arquivo de configuração nginx.Conf estará presente dentro desta pasta, juntamente com outros diretórios de arquivos que o nginx esperaria em /etc /nginx. Isso inclui certificados e chaves SSL e nomes de host para os servidores de back -end, onde o tráfego precisa ser encaminhado.
Esta pasta pode ser montada dentro do recipiente nginx em /etc /nginx (com permissão somente leitura, se você preferir precaução extra) e pode executar o servidor como um contêiner, mas você pode configurá-lo localmente a partir do seu diretório doméstico sem precisar logar no recipiente.
Esta é uma amostra:
Versão: '3'Blog fantasma
O fantasma é um CMS escrito principalmente no nó.js e é simplista, rápido e elegante em design. Ele depende do Nginx para rotear o tráfego para ele e usa MariaDB ou às vezes SQLite para armazenar dados. Você pode implantar uma imagem rápida e suja do Docker para fantasma usando um trecho simples, como mostrado abaixo:
Versão: '3'Isso cria um novo volume e o monta dentro do recipiente para armazenar o conteúdo do site persistentemente. Você pode adicionar o serviço de proxy reverso anterior do Nginx a este arquivo de composição e ter um blog fantasma de grau de produção em funcionamento em questão de minutos, desde que você tenha configurado o nginx para rotear o tráfego relevante da porta 80 ou 443 para a porta 2368 no fantasma recipiente.
Mariadb
O MariaDB é um software bastante útil para não estar disponível a qualquer momento em seu servidor. No entanto, os bancos de dados criam muitos logs, os dados reais tendem a se espalhar por todo o lugar e a configuração de servidores e/ou clientes nunca corre bem. O arquivo Docker-Compose cuidadosamente criado pode mitigar alguns dos problemas tentando armazenar todos os dados relevantes em um único volume do docker, enquanto o banco de dados Programas e suas complexidades estão escondidas no recipiente A:
Versão: '3'Você pode criar um novo contêiner de banco de dados para cada novo aplicativo, em vez de criar mais usuários no mesmo banco de dados, configurando privilégios e passando por uma rigidez dolorosa de garantir que todos os aplicativos e usuários permaneçam em seu próprio território. Você também não precisará abrir portas no sistema host, pois o contêiner de banco de dados será executado em sua própria rede isolada e você pode tê -lo para que apenas seu aplicativo possa fazer parte dessa rede e, assim, acessar o banco de dados.
Pilha do WordPress
Um ponto culminante de todas as várias partes, desde o uso de variáveis de ambiente até a execução de um servidor da Web front-end e um banco de dados de back-end, pode ser combinado em um arquivo Docker-Compose para um site do WordPress, como mostrado abaixo:
Versão: '3.3 'Este é o exemplo mais popular e também é mencionado na documentação oficial do Docker-Compose. Provavelmente, você não estará implantando o WordPress, mas o arquivo de composição aqui ainda pode servir como uma referência rápida para pilhas de aplicativos semelhantes.
Docker-compor com dockerfiles
Até agora, estamos apenas lidando com o lado da implantação pura do Docker-Compose. Mas é provável que você use a composição para não apenas implantar, mas desenvolver, testar e então implantar aplicativos. Seja em execução em sua estação de trabalho local ou em um servidor CD/CI dedicado, o Docker-Compose pode construir uma imagem usando o DockerFile presente na raiz do repositório relativa ao seu aplicativo ou parte do aplicativo:
Versão: '3'Você terá notado que, enquanto o serviço de back-end estiver usando uma imagem pré-existente do mariadb, a imagem do front-end é construída pela primeira vez a partir do DockerFile localizado dentro ./diretório de código front-end.
Toda a funcionalidade do Docker-Compose é muito fácil de entender se apenas nos perguntarmos o que é que estamos tentando construir. Após alguns erros de digitação e tentativa de falha, você ficará com um conjunto de trechos que funcionam perfeitamente e podem ser montados como blocos de construção de Lego para definir sua implantação de aplicativos.
Espero que os poucos exemplos acima lhe dêem uma boa vantagem com isso. Você pode encontrar a referência completa para escrever o arquivo de composição aqui.