/Quickstart-Compose-Django

Utilizando Django com Docker Compose.

Primary LanguagePython

Tutorial de Django com Docker e Postgres

Tutorial realizado seguindo as oreetações encontradas no documentação do Docker na página Quickstart: Compose and Django. Esse projeto foi criado para estudo do Django juntamente com o Docker e o Postgres.

Observação: Sugiro o uso do Visual Studio Code com a extensão do Docker pela Microsoft, pois é mais fácil de visualizar e entender o comportamento do Docker durante o projeto.

Docker Hub

Exemplo de como criar um repositório e subir para o Docker Hub. Comandos a serem utilizados:

# Efetuar login via terminal
docker login docker
# Baixar imagem:
docker pull [nome_usuário]/[nome_repositório]
# Exemplo de como criar uma imagem:
docker build -t [nome_usuário]/[nome_repositório] .
#  Exemplo de como enviar imagem para o Docker Hub
docker push [nome_usuário]/[nome_repositório]

Resumo dos passos do tutorial

Caso queira colocar ou baixar a imagem no Docker Hub veja o exemplo abaixo:

# Efetuar login no Docker Hub
docker login docker
# Baixar imagem:
docker pull mayannaoliveira/projeto-django
# Exemplo de como criar uma imagem:
docker build -t mayannaoliveira/projeto-django .
#  Exemplo de como enviar imagem para o Docker Hub
docker push mayannaoliveira/projeto-django

Observação: Lembre de trocar mayannaoliveira pelo nome de seu usuário.

docker-compose run --rm app django-admin python3 manage.py startapp appexample

Criar projeto: docker-compose run --rm app django-admin startproject projeto .

Construir: docker-compose build

Rodar: docker-compose up --build docker-compose up

Passo-a-passo do tutorial:

  1. Criar uma pasta para armazenar o projeto
cd quickstart-compose-django
  1. Instalar o docker compose com o comando:
pip install docker-compose
  1. Na raiz do projeto criar um arquivo chamado Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
  1. Na raiz do projeto criar um arquivo requirements.txt
Django>=3.0,<4.0
psycopg2-binary>=2.8
  1. Rodar o comando: RUN pip install -r requirements.txt
  2. Na raiz do projeto criar um arquivo docker-compose.yml
version: "3.9"
   
services:
  db:
    image: postgres
    volumes:
      - ./data/db:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
  web:
    build: .
    command: python manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db
  1. Inicie um projeto com o comamndo:
sudo docker-compose run web django-admin startproject composeexample . 
  1. Cheque a lista de arquivos do projeto com o comando:
ls -l
  1. Se você estiver executando o Docker no Linux, os arquivos criados pelo django-admin são de propriedade do root. Altere a propriedade dos novos arquivos com o comando:
sudo chown -R $USER:$USER .
  1. Acesse a pasta do projeto composeexample e edite o arquivo settings.py trocando os dados do banco de dados como mostra abaixo:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

Observação: Acesse o site do Postgres para verificar os passos de instalação do Banco de Dados. Recomendo o uso também da extenção para o Visual Studio Code chamada SQL Tools juntamente com o driver PostgreSQL.

  1. Rodar o projeto e verificar que está abrindo a página de localhost
docker-compose up

Tecnologias utilizadas:

Docker Django Python PostgreSQL

Sugestões ou dúvidas essas são minhas redes sociais

Siga-me nas redes sociais, eu estarei sempre a disposíção para conversar e trocar idéias. Sempre que eu puder estarei postando novidades!

github gmail whatsapp linktree instagram twitter