Sobes.tech
Junior

Care este experiența ta cu Docker Compose?

sobes.tech AI

Răspuns de la AI

Folosesc Docker Compose pentru a defini și a rula aplicații multi-container. Experiența mea include:

  • Dezvoltarea unui mediu local: Crearea unui fișier docker-compose.yml pentru a porni toate serviciile necesare (backend, frontend, bază de date, cache) pentru dezvoltarea locală. Acest lucru permite configurarea rapidă a unui mediu izolat.
  • Testare: Utilizarea Docker Compose pentru crearea de medii de testare cu diferite configurații de servicii.
  • Implementare pe staging/producție: Deși pentru producție se folosesc adesea orchestratori mai puternici (cum ar fi Kubernetes), Docker Compose a fost folosit în etapele inițiale sau pentru proiecte mici pentru implementare pe servere de staging.

Exemple de utilizare a câmpurilor în docker-compose.yml:

  • services: Definirea unui set de containere.
  • image: Specificarea imaginii Docker utilizate.
  • build: Construirea imaginii dintr-un Dockerfile.
  • ports: Maparea porturilor.
  • volumes: Montarea volumelor pentru stocarea datelor sau montarea codului sursă.
  • networks: Definirea rețelelor personalizate.
  • depends_on: Stabilirea dependențelor între servicii.
  • environment: Transmiterea variabilelor de mediu în container.

Exemplu de configurație simplă pentru o aplicație web și o bază de date:

services:
  webapp:
    build: ./webapp # Construirea din Dockerfile din directorul webapp
    ports:
      - "80:80" # Maparea portului 80 al gazdei la portul 80 al containerului
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Variabilă de mediu
    depends_on:
      - db # Web-ul depinde de baza de date

  db:
    image: postgres:13 # Utilizarea imaginii PostgreSQL
    volumes:
      - db_data:/var/lib/postgresql/data # Persistența datelor
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Definirea volumului numit

Comenzi tipice:

docker compose up -d # Pornirea serviciilor în fundal
docker compose down # Oprirea și ștergerea serviciilor
docker compose build # Construirea imaginilor
docker compose logs <nume_serviciu> # Vizualizarea jurnalelor unui serviciu specific
docker compose exec <nume_serviciu> <comandă> # Executarea unei comenzi în interiorul containerului

Sunt familiarizat cu versiunile de sintaxă ale Compose și diferențele dintre ele. Înțeleg cum să folosesc fișierele .env pentru gestionarea variabilelor de mediu și cum să aplic profiluri pentru a porni diferite seturi de servicii.