Sobes.tech
Junior

Wat is je ervaring met Docker Compose?

sobes.tech AI

Antwoord van AI

Ik gebruik Docker Compose om multi-container applicaties te definiëren en uit te voeren. Mijn ervaring omvat:

  • Ontwikkeling van een lokale omgeving: Het maken van een docker-compose.yml om alle benodigde services (backend, frontend, database, cache) voor lokale ontwikkeling te starten. Dit stelt me in staat om snel een geïsoleerde omgeving op te zetten.
  • Testen: Het gebruik van Docker Compose om testomgevingen te creëren met verschillende configuraties van services.
  • Implementatie op staging/production: Hoewel voor productie vaak krachtigere orkestrators (zoals Kubernetes) worden gebruikt, heb ik Docker Compose gebruikt in vroege fasen of voor kleine projecten voor deployment op staging-servers.

Voorbeelden van het gebruik van velden in docker-compose.yml:

  • services: Definieert een set containers.
  • image: Specificatie van de Docker-afbeelding.
  • build: Het bouwen van de afbeelding uit een Dockerfile.
  • ports: Poortmapping.
  • volumes: Het monteren van volumes voor gegevensopslag of broncode.
  • networks: Het definiëren van aangepaste netwerken.
  • depends_on: Het instellen van afhankelijkheden tussen services.
  • environment: Het doorgeven van omgevingsvariabelen aan de container.

Een eenvoudig voorbeeld van configuratie voor een webapplicatie en database:

services:
  webapp:
    build: ./webapp # Bouwen uit Dockerfile in de webapp directory
    ports:
      - "80:80" # Poort 80 van host naar poort 80 van container
    environment:
      DATABASE_URL: postgresql://user:password@db:5432/mydb # Omgevingsvariabele
    depends_on:
      - db # Webapp hangt af van de database

  db:
    image: postgres:13 # Gebruik van PostgreSQL image
    volumes:
      - db_data:/var/lib/postgresql/data # Data persistentie
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb

volumes:
  db_data: # Gedefinieerde volume

Veelgebruikte commando’s:

docker compose up -d # Start services op de achtergrond
docker compose down # Stop en verwijder services
docker compose build # Bouw images
docker compose logs <service_name> # Bekijk logs van een specifieke service
docker compose exec <service_name> <command> # Voer een commando uit binnen de container

Ik ben vertrouwd met de verschillende versies van de Compose-syntaxis en hun verschillen. Ik begrijp hoe ik .env-bestanden kan gebruiken om omgevingsvariabelen te beheren en hoe ik profielen kan toepassen om verschillende sets services te starten.