1
resposta

Agradecimentos e resumo sobre o 'docker compose'

Muito grato a todos envolvidos nesse curso! Excelente curso, renovei meus conhecimentos e me atualizei com novos recursos do Docker.

Segue minhas anotações das últimas aulas sobre docker compose, um resumo básico e links de referência. Pode ser que contribua e talvez seja útil pra alguém, e aceito sugestões.

_

docker compose

O objetivo é criar um arquivo de coordenação com o nome docker-compose.test.yml para subir um container do Wordpress com MariaDB e depois apaga tudo e repetir o processo.

  • Criar uma network com o nome network-test
  • Criar container de serviço de banco de dados do MariaDB com o nome de db-service-test na network acima, definindo o usuários e senhas do db, e também criar uma tabela com o nome wordpress.
  • Criar um container com Wordpress, de nome wordpress-test, na mesma network e conectar ao db fazendo o link entre containers (external_links)
  • Checa se as configurações do arquivo YML estão ok (config)
  • Criar e iniciar os serviços em background (up --detach)
  • Configurar e abrir o Wordpress via browser
  • Apaga tudo!
  • Encerrar todo os serviços, baixa todos os containers
  • Remover todo os serviços, deletando os containers
  • Remove a network network-test

docker-compose.test.yml

version: "3.9"

networks:
  network-test:
    driver: bridge
    name: network-test

services:
  mariadb:
    image: mariadb:jammy
    container_name: db-service-test
    restart: always
    environment:
      - MARIADB_USER=admin
      - MARIADB_PASSWORD=123456
      - MARIADB_DATABASE=wordpress
      - MARIADB_ROOT_USER=root
      - MARIADB_ROOT_PASSWORD=rootpass123
    networks:
      - network-test

  wordpress:
    image: wordpress:php8.2-apache
    container_name: wordpress-test
    restart: always
    environment:
      - WORDPRESS_DB_HOST=db-service-test
      - WORDPRESS_DB_USER=admin
      - WORDPRESS_DB_PASSWORD=123456
      - WORDPRESS_DB_NAME=wordpress
      - WORDPRESS_TABLE_PREFIX=wp_
    networks:
      - network-test
    ports:
      - 8086:80
    external_links:
      - db-service-test:mariadb:jammy
    depends_on:
      - mariadb
  • checa a estrutura do arquivo .yml

docker compose --file docker-compose.test.yml config

  • Criar e iniciar os serviços em background

docker compose --file <path to .yml> up --detach

Voilá!!!

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Se for uma segunda instalação, após remover os containers e recriá-lo, usando a mesma porta, pode dar erro de conexão ao DB devido ao cache do navegador, com os dados do Wordpress anterior, as seguintes ações podem ajudar:

  1. Usando o Chrome, acesse chrome://net-internals/#dns e clique em Clear host cache (ou limpe o cache do seu navegador), retorne ao link e atualize a página, pressionando Shift+F5 algumas vezes.
  2. E sendo mais hard core, dependendo da aplicação, reinicie o DNS do host pelo terminal com sudo /etc/init.d/nscd restart. Em um projeto real, ao remover e recriar o container, é prudente usar métodos na aplicação que forcem a atualização do cache no lado do usuário.
  3. Ou simplesmente, altere a porta do Wordpress no arquivo YML e rode. Vai funcionar!!! ;-)

_

  • Apaga tudo!

Encerra todos os serviços, baixa todos os containers

docker compose --file <path to .yml> kill

Remove todos os serviços, deletando os containers

docker compose --file <path to .yml> rm -f

Remove a network

docker network rm <network_name>

...ou simplesmente com apenas um comando executa as três ações acima

docker compose --file <path to .yml> down

Done!!!

_

Ref:

https://docs.docker.com/compose/reference/

https://docs.docker.com/compose/gettingstarted/

https://docs.docker.com/compose/compose-file/compose-file-v3/

https://github.com/compose-spec/compose-spec/blob/master/spec.md#the-compose-specification

1 resposta

Olá Cesar, tudo bem com você?

Agradeço o seu feedback sobre o curso. Fico feliz em saber que você renovou seus conhecimentos e se atualizou com novos recursos do Docker. É sempre gratificante ver os estudantes satisfeitos com o conteúdo oferecido.

Além disso, agradecemos por compartilhar suas anotações das últimas aulas sobre o Docker Compose, bem como seu resumo básico e os links de referência. É incrível ver seu comprometimento contribuindo para a comunidade e compartilhando seu conhecimento com os outros. Tenha certeza de que suas anotações e resumo serão úteis para muitos outros estudantes.

Continue com essa dedicação e empenho. Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!