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