Docker com Django, PostgreSQL e Compose para seu ambiente de desenvolvimento Python
Desenvolver aplicações em Python pode ser uma tarefa desafiadora, especialmente quando se trata de configurar um ambiente de desenvolvimento adequado. Felizmente, o Docker tornou esse processo muito mais fácil, permitindo que os desenvolvedores criem ambientes isolados e portáteis para suas aplicações. Neste artigo, vamos explorar como utilizar o Docker juntamente com Django, PostgreSQL e Docker Compose para criar um ambiente de desenvolvimento eficiente e robusto.
Passo 1: Instalar o Docker e o Docker Compose
Antes de começarmos, certifique-se de ter o Docker e o Docker Compose instalados em sua máquina. Você pode encontrar instruções de instalação detalhadas no site oficial do Docker.
Passo 2: Criar o ambiente de desenvolvimento com Docker Compose
Comece criando um arquivo chamado docker-compose.yml
em seu diretório de projeto. Neste arquivo, você deve definir os serviços que serão executados em seu ambiente de desenvolvimento, como o Django e o PostgreSQL.
version: '3'
services:
db:
image: postgres
environment:
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
POSTGRES_DB: mydb
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
Neste exemplo, estamos definindo dois serviços: o serviço de banco de dados PostgreSQL e o serviço da aplicação Django. Certifique-se de ajustar as configurações conforme necessário para o seu projeto.
Passo 3: Criar o Dockerfile para o Django
Agora, crie um arquivo chamado Dockerfile
em seu diretório de projeto para definir a imagem Docker para a aplicação Django.
FROM python:3
ENV PYTHONUNBUFFERED 1
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
COPY . /code/
Neste exemplo, estamos utilizando a imagem Python 3 como base e copiando o código fonte da aplicação para o diretório /code
.
Passo 4: Configurar o Django para utilizar o PostgreSQL
Por fim, você precisará ajustar as configurações do Django para utilizar o banco de dados PostgreSQL. Edite o arquivo settings.py
da sua aplicação e atualize as configurações de banco de dados conforme necessário.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydb',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'db',
'PORT': '5432',
}
}
Conclusão
Com esses passos, você criou um ambiente de desenvolvimento robusto e eficiente utilizando Docker, Django, PostgreSQL e Docker Compose. Agora você pode desenvolver suas aplicações Python de forma isolada e portátil, facilitando a colaboração e a implantação de suas aplicações em produção.
Conheça meus cursos em: https://www.otaviomiranda.com.br/
Adorei o vídeo, gostaria muito de um deploy para produção!
isso não é um professor não, é um pai
Noh, me ajudou demais. Os ultimos 5 minutos foram muito bons, poderia ter falado por mais tempo!
Bença pai
Exatamente o que eu procurava. kkkkk Esse professor é demais!
Não encontra o arquvio commands.sh. Fala que o docker não encontra
adiciona server components no seu curso de react, por favor
Na pasta data/web/static é onde ficam os arquivos estáticos desse projeto, porém, não roda o css
Excelente aula, muito obrigada ❤
Massa vou tentar faze , faço seu curso da udemy python com três projeto, vou tentar criar o ambiente e colocar o codigo do curso junto
Galera alguém sabe me dizer qual a config que ele usa pra deixar a linha verde/amarela quando ele abre um for ou um while? essa linha fica no lado esquerdo na vertical
Vou aproveitar essas dicas e colocar junto do teu curso de Django, parabéns otimos cursos
Parabens pela didática, excelente. Miranda favor ensinar a configuração do certificado SSL, letsencrypt por exemplo com o deploy em produção nesse mesmo exemplo.
Já tem o de deploy?
Seu curso é muito bom parabéns e obrigado, faz o video com a parte do deploy porfavor!!! Obrigado de mais.
Estou gostando muito do curso do Otávio na Udemy, recomendo.
😀
Aula muito top… completassa e aguardando aula em produção!
qual tema de icons do teu vscode amigo?
Boa tarde, qual curso contempla todos os videos de forma completa que estão sendo usados nesse tutorial?