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

Erro no docker compose build

Quando vou dar o meu docker compose build, dá o seguinte erro:

ERROR: Service "mongodb" uses an undefined network "production-newtork"

Eu deveria criar minha network antes de dar o compose build? Fiquei em dúvida pois no vídeo ele rodou direto, sem ter criado a network na mão, de qualquer forma, segue docker-compose.yaml:

# Aqui especificamos qual versão do YAML iremos utilizar
version: '3'
# Os services são cada parte da nossa aplicação (geralmente cada service é um container)
services: 
    #dentro do services eu defino todos os containers que quero buildar
    nginx:
        #para definir que eu quero buildar, usa-se o build
        build:
            #o dockerfile é o caminho onde está o dockerfile desse container
            dockerfile: ./docker/nginx.dockerfile
            #o context é o ponto inicial da busca pelo arquivo dockerfile (no caso, vamos buscar na root ".")
            context: .
        #o image define qual o nome da imagem que será criada para esse service
        image: gmedeiros13/nginx
        #o container name é o nome do container que será criado a partir da imagem buildada
        container_name: nginx
        ports:
            - "80:80"
        networks:
            - production-network
        # O depends_on diz para o Docker que o serviço em questão está aguardando os serviços assinalados, ele subirá apenas após os serviços assinalados subirem
        depends_on:
            - "node1"
            - "node2"
            - "node3"

    mongodb:
        image: mongo
        networks:
            - production-newtork

    node1:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-1
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

    node2:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-2
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

    node3:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-3
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

networks:
    production-network:
        driver: bridge
1 resposta
solução!

Revisando meu próprio código, percebi que me antecipei em postar no fórum, o erro está nesse service:

    mongodb:
        image: mongo
        networks:
            - production-newtork

onde está - production-newtork deveria ser -production-network ficando assim o arquivo:

# Aqui especificamos qual versão do YAML iremos utilizar
version: '3'
# Os services são cada parte da nossa aplicação (geralmente cada service é um container)
services: 
    #dentro do services eu defino todos os containers que quero buildar
    nginx:
        #para definir que eu quero buildar, usa-se o build
        build:
            #o dockerfile é o caminho onde está o dockerfile desse container
            dockerfile: ./docker/nginx.dockerfile
            #o context é o ponto inicial da busca pelo arquivo dockerfile (no caso, vamos buscar na root ".")
            context: .
        #o image define qual o nome da imagem que será criada para esse service
        image: gmedeiros13/nginx
        #o container name é o nome do container que será criado a partir da imagem buildada
        container_name: nginx
        ports:
            - "80:80"
        networks:
            - production-network
        # O depends_on diz para o Docker que o serviço em questão está aguardando os serviços assinalados, ele subirá apenas após os serviços assinalados subirem
        depends_on:
            - "node1"
            - "node2"
            - "node3"

    mongodb:
        image: mongo
        networks:
            - production-network

    node1:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-1
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

    node2:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-2
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

    node3:
        build:
            dockerfile: ./docker/alura-books.dockerfile
            context: .
        image: gmedeiros13/alura-books
        container_name: alura-books-3
        ports:
            - "3000"
        networks: 
            - production-network
        depends_on:
            - "mongodb" 

networks:
    production-network:
        driver: bridge