• DockerFile
  • FROM python:3.13-alpine3.22
    WORKDIR /usr/src/app
    COPY requirements.txt ./
    RUN pip install --no-cache-dir -r requirements.txt
    COPY . .
    CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
    com este arquivo .dockerfile podemos gera uma imagem e depois implementar nosso container:
    docker build --platform linux/amd64 -t docker-python-django
    # a opção --platform garante que estamos buildando a imagem em amd64 mude para arm64 se quiser. # a imagem não ficara visivel em sua diretório de desenvolvimento # para testes rode: sudo docker run docker-python-django:01amd64

  • Docker Compose
  • docker-compose.yml
    version: '3.8'
    services:
    db:
    image: postgres:15
    container_name: postgres
    restart: always
    environment:
    POSTGRES_DB: mydb
    POSTGRES_USER: myuser
    POSTGRES_PASSWORD: mypassword
    volumes:
    - postgres_data:/var/lib/postgresql/data
    networks:
    - backend
    web:
    build: .
    container_name: django
    restart: always
    depends_on:
    - db
    environment:
    DATABASE_NAME: postgresdb
    DATABASE_USER: seuusuario
    DATABASE_PASSWORD: senhasecreta
    DATABASE_HOST: djangodb
    DATABASE_PORT: 5432
    networks:
    - backend
    command: gunicorn config.wsgi:application --bind 0.0.0.0:8000
    volumes:
    postgres_data:
    networks:
    backend:
    driver: bridge

    Atenção passei o usuario senha e outros dados sensíveis no composer mas é recomendado que seja usado variáveis de ambiente.

  • Atenção passei o usuario senha e outros dados sensíveis no composer mas é recomendado que seja usado variáveis de ambiente.

    Mude caso queira usar local:

  • volumes:
    - .:/app
    ports:
    - "8000:8000"
    command:
    python3 manage.py runserver