Giter Club home page Giter Club logo

quickstart-compose-django's Introduction

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

quickstart-compose-django's People

Contributors

mayannaoliveira avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.