Como utilizar
Abaixo listamos os comandos para executar o projeto utilizando Docker e também os comandos para que seja possível depois do container subir executar os comandos dentro da imagem.
Para usuários Windows é necessário garantir que o WSL2 esteja configurado e tenha instalado o Docker Desktop
Criando a imagem e executando o container
docker-compose up -d
Executando em ambiente de desenvolvimento
docker-compose --f docker-dev.yml up -d
Forçando a geração da nova imagem e container
docker-compose -f docker-dev.yml up -d --force-recreate --no-deps
Mostrando as imagens geradas
docker image ls
Após a execução do comando acima deve ser mostrado no terminal o nome das imagens que foram criadas, uma das imagens é o banco de dados, e outra é o projeto (web) que traz o mesmo nome do seu projeto, para os demais comandos é necessário copiar o IMAGE ID do projeto, que no exemplo abaixo é 55c290edebcd
REPOSITORY               TAG           IMAGE ID       CREATED          SIZE
NOME_DO_SEU_PROJETO      latest        55c290edebcd   40 minutes ago   880MB
docker/getting-started   latest        bd9a9f733898   7 weeks ago      28.8MB
postgres                 13.4-alpine   682810fa689e   5 months ago     192MB
Mostrando os containers
docker container ls
Após a execução do comando acima deve ser mostrado no terminal os containers que foram criados. O container que roda a aplicação django terá um nome parecido com NOME_DO_SEU_PROJETO_web_1, no exemplo abaixo é é agtectcore_web_1
CONTAINER ID   IMAGE           COMMAND                  CREATED         STATUS         PORTS                    NAMES
b3097cb73d33   agtectcore       "bash -c 'python man…"   7 minutes ago   Up 7 minutes   0.0.0.0:8000->8000/tcp   agtectcore_web_1
46d23ebe2f9b   postgres:14.3   "docker-entrypoint.s…"   7 minutes ago   Up 7 minutes   5432/tcp                 agtectcore_database_1
docker exec -it agtectcore_web_1 COMANDO_QUE_DESEJA_EXECUTAR
Abrindo o shell no container
docker exec -it CONTAINER_ID sh
Com esse comando o terminal passa a ser de dentro do container
Para sair do shell do container sem derrubar o container basta utilizando o conjunto de teclas
CTRL + P , CTRL + Q
Criando a SECRET_KEY
docker exec -it agtectcore_web_1 sh -c "python contrib/secret_gen.py"
O comando acima retorna uma string similar a esta gvN3L7UR_4ADJrUjnLGdjzZuvFoT01gqYyFfQkY0Qava7DigkWS63YP8UBl7saAcV3E essa string é a chave secreta que será utilizada pelo Django para gerar as senhas e deve ser adicionada como variável de ambiente no arquivo Dockerfile.Dev
Executando o makemigrations
docker exec -it agtectcore_web_1 sh -c "python manage.py makemigrations"
Executando o migrations
docker exec -it agtectcore_web_1 sh -c "python manage.py migrate"
Executando o build da app Usuario
docker exec -it agtectcore_web_1 sh -c "python manage.py build usuario"
Executando o comando para gerar o SuperUser
docker exec -it agtectcore_web_1 sh -c "python mock_superuser.py"
Executando o comando para gerar os dados Fake do models Usuario
docker exec -it agtectcore_web_1 sh -c "python mock_data.py"
Criando uma nova app
docker exec -it agtectcore_web_1 sh -c "python manage.py startapp NomeDaNovaApp"