-
Notifications
You must be signed in to change notification settings - Fork 69
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
A construção do docker do fastzero_app falha no código-fonte das Aulas 10 a 12 #147
Comments
@K-dash, dei um |
@K-dash, https://github.com/dunossauro/fastapi-do-zero/actions/runs/9178391115/job/25238187876 Subi até um CI aqui pra gente ver se estava funcionando e está como na minha máquina. Os containers estão sendo buildados sem nenhum problema. Acredito que tenha alguma relação com a sua configuração. No mais, estou aqui pro que precisar para reproduzir. Qual o seu ambiente? |
@dunossauro Após verificar novamente no meu ambiente, descobri que a razão pela qual a construção falhava era devido à diferença na arquitetura da CPU do Docker. Meu ambiente é MacOS (chip M2) e a arquitetura da CPU do Docker estava configurada como ❯ docker info | grep Architecture
Architecture: aarch64 Para testar, especifiquei a opção de ❯ docker build --platform linux/amd64 -t "fast_zero" . Além disso, para garantir, testei em um ambiente com arquitetura x86_64 e também confirmei que a construção foi bem-sucedida. $ docker info | grep Architecture
Architecture: x86_64
Deveria ter investigado antes de abrir um issue. Peço desculpas pelo incômodo. |
@K-dash obrigado por ser tão explicativo. Quando passar por essa aula, vou colocar uma nota na revisão. Obrigado |
Tive esse mesmo problema. Obrigado por compartilhar o problema e a resolução de forma tão clara e explicativa. Ajudou bastante. |
@dunossauro
Olá.
Gostaria de relatar um problema encontrado relacionado ao título mencionado. Vou enviar um pull request em breve.
Conteúdo
Ao clonar o repositório principal mais recente e executar
docker build -t "fast_zero"
. usando o código-fonte da Aula 10 a 12, ocorreu o seguinte erro:Este erro ocorre porque o arquivo poetry.lock não está em conformidade com o arquivo pyproject.toml. Então, em cada um dos diretórios das Aulas 10 a 12, executei
poetry lock --no-update
para atualizar o arquivo poetry.lock.Depois de atualizar o arquivo
poetry.lock
, executei novamentedocker build -t "fast_zero" .
, mas ocorreu um novo erro:Este erro ocorre porque o pacote
psutil
(uma dependência dotaskipy
) requer o gcc para ser construído, mas a imagempython3.11-slim
não possui ogcc
instalado. Para resolver esse problema, adicionei uma etapa noDockerfile
para instalar as ferramentas de construção necessárias.Com isso, o comando
docker build -t "fast_zero" .
foi concluído com sucesso.Refleti o código corrigido (código que permite fazer docker compose up completamente) nas Aulas 10 a 12 e também alterei o conteúdo do Markdown. Poderia revisar as alterações, por favor?
Sobre a adição do build-essential
Além do método acima, acho que existem outras alternativas para garantir o sucesso da construção do Dockerfile:
python:3.11
em vez dapython:3.11-slim
, pois esta já inclui o compilador gcc.Para a opção 1, considerei que não seria adequada, pois o tamanho da imagem resultante aumentaria para 1,25GB, enquanto utilizando a imagem slim fica em torno de 710MB, resultando numa diferença de aproximadamente 500MB.
Já a opção 2 poderia minimizar ainda mais o tamanho da imagem, mas descartamos essa alternativa devido à complexidade adicional que traria à lição, exigindo explicações sobre a construção multi-stage.
Com base nisso, concluí que adicionar o
build-essential
na imagempython:3.11-slim
seria a abordagem mais adequada, pois permite manter o tamanho da imagem pequeno e evita aumentar a complexidade da lição.No entanto, reconheço que podem haver diferentes opiniões sobre essa decisão. Gostaria de ouvir seu feedback a respeito.
The text was updated successfully, but these errors were encountered: