Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

docker-compose service build e image

No exemplo da aula em que criamos o docker-compose.yml, ficou confuso a atribuição de responsabilidade para o step de build e image.

Na definição do serviço de nginx e node descrevemos tanto a imagem como o build, já no serviço do mongo apenas a imagem. Eu havia entendido que a imagem já tem o build definido e seria apenas executar para a criação do container. Porém, quando temos os dois descritos na definição de um serviço não ficou claro para mim a responsabilidade de cada step.

Não deveríamos usar um ou o outro? Podem explicar melhor o que cada um desses dois steps fazem? Se eles tem comportamentos diferentes quando utilizados em conjunto e separadamente para cada serviço. Ou se um sobrepõe o outro.

Obrigado!

services:
    nginx 
        build:
            dockerfile: ./docker/nginx.dockerfile
            context: . 
        image: douglasq/nginx
        container_name: nginx 

    mongodb:
            image: mongo

    node1:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: douglas1/alura-books 
        container_name: alura-books-1
1 resposta
solução!

Olá, Adilson. Tudo bem?

Quando usamos o Docker Compose, se não especificarmos um dockerfile para que ele tenha como base na hora do build, irá buscar a imagem que foi passada no campo image na sua máquina (ou nos repositórios caso não esteja presente localmente) e fará o build com a configuração padrão para aquela imagem.

Caso você queira customizar o processo de build, adicionar algum passo como foi feito na aula ( copiamos o conteúdo da pasta public do projeto, que contém os arquivos estáticos, e um arquivo de configuração do NGINX para dentro do container), aí passamos qual o dockerfile que queremos que seja usado para o build.

Nesse caso, no campo image será definido de que forma você quer identificar a imagem customizada que foi construída. É o nome passado que o Compose vai usar para identificar aquele container que está rodando, seus logs etc.

Espero ter ajudado. Se tiver alguma dúvida é só dizer.