Docker-compose

"Compose"

services:
  mkdocs:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: mkdocs
    image: nome-immagine:tag
    ports:
      - "80:8000"
    volumes:
      - ./docs:/docs
      - ./mkdocs.yml:/mkdocs.yml
    networks:
      - net_mkdocs
    restart: unless-stopped
    mem_limit: 512m         # Limite massimo di memoria utilizzabile dal container
    mem_reservation: 128M   # Quantità minima di memoria "riservata" garantita al container
    memswap_limit: 1g       # Limite combinato di RAM + swap (oltre `mem_limit` usa lo swap)
    cpus: "0.5"             # Limita l'uso della CPU a metà di un core
    cpuset: "1"             # Limita l'esecuzione del container al solo core 1
    depends_on:
      - postgres  

  postgres:
    image: postgres:15
    container_name: postgres
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: mydb
    ports:
      - "5432:5432"
    networks:
      - net_mkdocs
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U user"]  
      interval: 10s     # intervallo di tempo tra i check
      timeout: 5s       # tempo massimo di attesa per ogni check
      retries: 5        # numero di tentativi prima di considerare il container non sano

networks:
  net_mkdocs:
    driver: bridge

volumes:
  pgdata:
    name: pgdata