Skip to content
This repository has been archived by the owner on Sep 26, 2024. It is now read-only.

Fix docker build pois estava com problema pra subir via docker #64

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

andreformento
Copy link

Apenas gostaria de entender o projeto e tentei subir via docker, mas tive dificuldades. Aí tentei corrigir e funcionou. Não sei se fiz algo errado. Mas via Docker agora está bem fácil.

O que o PR faz?

Faz com que o projeto rode apenas com docker, sem precisar de mais nada instalado local.
Nem versão de Python, nem baixar e instalar nenhuma dependência.

O que foi feito?

  • Mudei a imagem base para python:3.7.2 pois a versão alpine parece não funcionar bem de acordo com essa e essa discussão que encontrei.

Como validar?

docker-compose up --build -d
  • Para verificar que os arquivos não utilizados foram descartados na imagem docker (.dockerignore)
docker exec -it censo ls -lhas

@@ -3,9 +3,11 @@ version: '3'
services:
web:
build: .
command: bash -c "python censo/manage.py makemigrations && python censo/manage.py migrate && python censo/manage.py runserver 0.0.0.0:8000"
command: bash -c "python manage.py makemigrations && python manage.py migrate && python manage.py read_data --file /data/municipal_data.csv && python manage.py runserver 0.0.0.0:8000"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andreformento percebi que esse script não está totalmente correto. Ele insere todos os municípios a cada vez que é executado, logo se ele ficar no docker compose irá duplicar cada cidade na base de dados.

Talvez agora a saída pode ser remover a execução do script no Docker ou ajustar o script.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nossa! Nem tinha pensado sobre duplicar os dados 😱

De qualquer forma, eu não consegui reproduzir esse comportamento. Como você fez? Eu vi que não existe nenhum volume que guarde estado da execução do banco (é sqlite local né?). Então, não consegui descobrir como simular isso via docker-compose. Teoricamente toda vez que rodar ele vai criar e popular uma base do zero.

Caso ache necessário guardar o estado do banco, por alguma questão de otimização, eu posso manter o sqlite pra guardar os dados (via volume) e quando executar novamente não precisa executara a leitura. Eu fiz essa branch aqui como sugestão que já valida se tem alguma cidade cadastrada, conforme script de read que você sugeriu. Se achar válida faço o merge pra branch desse PR aqui pra vc aprovar 😄

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants