vitorsilverio/libraryapi

Aprendendo a fazer um docker-compose.yml

Closed this issue · 3 comments

Estava tentando fazer um docker-compose.yml como ensinado naquele vídeo que me enviou, mas não consegui.

version: '3.3'
services:
    app:
        build: .
        container_name: libraryapi
        command: uvicorn app.main:app --port 80 --reload
        ports:
            - '80:80'
        image: libraryapi:latest
        volumes:
            - .:/app

Quando faço o docker-compose up --build dá:

Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "uvicorn": executable file not found in $PATH: unknown

Isso acontece porque como você apontou o volume da aplicação como a pasta do projeto toda a pasta do virtualenv que foi gerada pelo docker é apagada. Vou move-la assim não deve acontecer esse problema

Movido no commit #25b0607 agora se tentar com docker-compose.yml abaixo deve conseguir:

version: '3.3'
services:
    app:
        build: .
        container_name: libraryapi
        command: uvicorn app.main:app --host 0.0.0.0 --port 80 --reload
        ports:
            - '8000:80'
        image: libraryapi:latest
        volumes:
            - .:/app
            

Observações: ¹Mudei a porta para 8080 para não precisar rodar como root durante o desenvolvimento. ²Sem o parametro --host 0.0.0.0 o uvicorn vai ficar retornando ERR_CONNECTION_RESETED nos navegadores

Perfeito! Acho que que é bom colocar esse docker-compose.yml aí no repositório, assim dá para expandir a seção Contributing explicando esse jeito mais fácil de desenvolver "direto" dentro do container docker. Depois mando a PR.