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.