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.
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]
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
- Criar uma pasta para armazenar o projeto
cd quickstart-compose-django
- Instalar o docker compose com o comando:
pip install docker-compose
- 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/
- Na raiz do projeto criar um arquivo requirements.txt
Django>=3.0,<4.0
psycopg2-binary>=2.8
- Rodar o comando: RUN pip install -r requirements.txt
- 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
- Inicie um projeto com o comamndo:
sudo docker-compose run web django-admin startproject composeexample .
- Cheque a lista de arquivos do projeto com o comando:
ls -l
- 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 .
- 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.
- Rodar o projeto e verificar que está abrindo a página de localhost
docker-compose up
Siga-me nas redes sociais, eu estarei sempre a disposíção para conversar e trocar idéias. Sempre que eu puder estarei postando novidades!