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.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