Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como atualizo o docker compose no windows 10?

Quando executo o "docker-compose build" para o exemplo yaml da aula 6 ocorre o erro abaixo.

"ERROR: The Compose file '.\docker-compose.yml' is invalid because: Invalid top-level property "Da mesma forma, dizemos que o serviço do nginx depende dos serviços node1, node2 e node3". Valid top-level sections for this Compose file are: version, services, networks, volumes, and extensions starting with "x-".

You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the services key, or omit the version key and place your service definitions at the root of the file to use version 1. For more on the Compose file format versions, see https://docs.docker.com/compose/compose-file/"

A versão do docker-compose instalada é informada abaixo e preciso ataualizá-la sobre o Windows 10. docker-compose version 1.24.1, build 4667896b docker-py version: 3.7.3 CPython version: 3.6.8 OpenSSL version: OpenSSL 1.0.2q 20 Nov 2018 PS C:\Docker\Docker cap6\alura-docker-cap06>

Grato, Franklanio

3 respostas

Olá Franklanio, tudo bem? Você poderia colocar aqui o seu código do arquivo docker-compose.yml, pelo erro ele está reclamando na verdade da sintaxe utilizada no arquivo, a sintaxe parece não está compatível com a versão, mais você poderia colocar o código aqui pra gente verificar!

Segue o código do ylm.

version: "3" services: nginx: build: dockerfile: ./docker/nginx.dockerfile context: . image: douglasq/nginx container_name: nginx ports: - "80:80" networks: - production-network

mongodb:
    image: mongo
    networks: 
        - production-network

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

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

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

networks: production-network: driver: bridge Da mesma forma, dizemos que o serviço do nginx depende dos serviços node1, node2 e node3:

version: '3' services: nginx: build: dockerfile: ./docker/nginx.dockerfile context: . image: douglasq/nginx container_name: nginx ports: - "80:80" networks: - production-network depends_on: - "node1" - "node2" - "node3"

mongodb:
    image: mongo
    networks: 
        - production-network

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

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

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

networks: production-network:

solução!

Franklanio, o erro é por causa dessa frase Da mesma forma, dizemos que o serviço do nginx depende dos serviços node1, node2 e node3: que está presente no seu arquivo docker-compose.yml, você pode ter se enganado no momento de copiar o código na transcrição da aula, então, faz assim: Apaga todo o código do seu arquivo, depois copia e cola esse código abaixo e por fim executa novamente:

version: '3'
services:
    nginx:
        build:
            dockerfile: ./docker/nginx.dockerfile
            context: .
        image: douglasq/nginx
        container_name: nginx
        ports:
            - "80:80"
        networks: 
            - production-network
        depends_on: 
            - "node1"
            - "node2"
            - "node3"

    mongodb:
        image: mongo
        networks: 
            - production-network

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

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

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

networks: 
    production-network:
        driver: bridge

Isso deve resolver!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software