Introducció
Docker és una eina que permet crear, desplegar i executar aplicacions dins de contenidors. Els contenidors són entorns aïllats que contenen tot el necessari per executar una aplicació, incloent-hi el codi, les biblioteques i les dependències. Utilitzar Docker amb Django pot simplificar el procés de desplegament i assegurar que l'aplicació funcioni de manera consistent en diferents entorns.
Objectius
En aquesta secció, aprendràs a:
- Crear un fitxer Dockerfile per a una aplicació Django.
- Configurar
docker-composeper gestionar múltiples serveis. - Construir i executar contenidors Docker per a una aplicació Django.
Requisits Previs
Abans de començar, assegura't de tenir instal·lats:
- Docker: Instal·lació de Docker
- Docker Compose: Instal·lació de Docker Compose
- Creació del Dockerfile
El Dockerfile és un fitxer de text que conté les instruccions per construir una imatge Docker. A continuació es mostra un exemple de Dockerfile per a una aplicació Django:
# Utilitza una imatge base oficial de Python FROM python:3.9-slim # Estableix el directori de treball dins del contenidor WORKDIR /app # Copia el fitxer de requisits al directori de treball COPY requirements.txt . # Instal·la les dependències RUN pip install --no-cache-dir -r requirements.txt # Copia el codi de l'aplicació al directori de treball COPY . . # Exposa el port que utilitzarà l'aplicació EXPOSE 8000 # Comanda per executar l'aplicació CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
Explicació del Dockerfile
FROM python:3.9-slim: Utilitza una imatge base de Python 3.9.WORKDIR /app: Estableix/appcom a directori de treball dins del contenidor.COPY requirements.txt .: Copia el fitxerrequirements.txtal directori de treball.RUN pip install --no-cache-dir -r requirements.txt: Instal·la les dependències especificades enrequirements.txt.COPY . .: Copia tot el codi de l'aplicació al directori de treball.EXPOSE 8000: Exposa el port 8000 per accedir a l'aplicació.CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]: Executa l'aplicació Django.
- Configuració de docker-compose
docker-compose és una eina per definir i executar aplicacions multi-contenidor. Crearem un fitxer docker-compose.yml per gestionar la nostra aplicació Django i una base de dades PostgreSQL.
Exemple de docker-compose.yml
version: '3.8'
services:
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: myuser
POSTGRES_PASSWORD: mypassword
volumes:
- postgres_data:/var/lib/postgresql/data
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
volumes:
postgres_data:Explicació del docker-compose.yml
version: '3.8': Especifica la versió dedocker-compose.services: Defineix els serveis que formen part de l'aplicació.db: Servei de base de dades PostgreSQL.image: postgres:13: Utilitza la imatge oficial de PostgreSQL 13.environment: Variables d'entorn per configurar la base de dades.volumes: Defineix un volum per persistir les dades de la base de dades.
web: Servei de l'aplicació Django.build: .: Construeix la imatge utilitzant elDockerfiledel directori actual.command: Comanda per executar l'aplicació.volumes: Monta el directori actual dins del contenidor.ports: Mapeja el port 8000 del contenidor al port 8000 de l'amfitrió.depends_on: Assegura que el serveidbs'iniciï abans del serveiweb.
- Construir i Executar els Contenidors
Ara que tenim el Dockerfile i el docker-compose.yml configurats, podem construir i executar els contenidors.
Construir els Contenidors
Executa la següent comanda per construir els contenidors:
Executar els Contenidors
Executa la següent comanda per iniciar els serveis definits en docker-compose.yml:
Aquesta comanda iniciarà els serveis db i web. Podràs accedir a l'aplicació Django a través del navegador web a http://localhost:8000.
Exercici Pràctic
Objectiu
Configurar una aplicació Django amb Docker i Docker Compose, incloent-hi una base de dades PostgreSQL.
Passos
- Crea un fitxer
Dockerfileseguint l'exemple proporcionat. - Crea un fitxer
docker-compose.ymlseguint l'exemple proporcionat. - Executa
docker-compose buildper construir els contenidors. - Executa
docker-compose upper iniciar els serveis. - Accedeix a l'aplicació Django a
http://localhost:8000.
Solució
Si has seguit els passos correctament, hauràs configurat i executat una aplicació Django amb Docker i Docker Compose. Si tens problemes, revisa els fitxers Dockerfile i docker-compose.yml per assegurar-te que no hi ha errors de sintaxi.
Conclusió
En aquesta secció, has après a utilitzar Docker per conteniritzar una aplicació Django i a utilitzar Docker Compose per gestionar múltiples serveis. Aquesta configuració simplifica el desplegament i assegura que l'aplicació funcioni de manera consistent en diferents entorns. En el següent tema, explorarem les millors pràctiques de seguretat per a aplicacions Django.
Curs de Desenvolupament Web amb Django
Mòdul 1: Introducció a Django
- Què és Django?
- Configuració de l'Entorn de Desenvolupament
- Creació del teu Primer Projecte Django
- Comprensió de l'Estructura del Projecte Django
Mòdul 2: Conceptes Bàsics de Django
- Aplicacions Django i Estructura del Projecte
- Enrutament d'URL i Vistes
- Plantilles i Fitxers Estàtics
- Models i Bases de Dades
- Interfície d'Administració de Django
Mòdul 3: Django Intermedi
Mòdul 4: Django Avançat
- Consultes Avançades amb Django ORM
- Models d'Usuari Personalitzats
- Senyalitzacions de Django
- Proves en Django
- Optimització del Rendiment
