1,737 21/03/2026 07/04/2026 3 min

Le applicazioni moderne richiedono un'implementazione robusta e scalabile. Utilizzando Docker Compose, possiamo orchestrare i container in modo efficiente. Questo articolo esplora come configurare un ambiente Docker per un'applicazione Node.js, concentrandosi su healthchecks, limiti delle risorse e best practices per la sicurezza.

Prerequisiti

Assicurati di avere i seguenti strumenti installati:

  • Docker (versione 20.10 o superiore)
  • Docker Compose (versione 1.27 o superiore)
  • Accesso a un server Linux (ad esempio, Ubuntu 20.04)

Step 1: Creare il File Docker Compose

Iniziamo a definire un file docker-compose.yml. Questo file descrive i servizi, le reti e i volumi necessari per la tua applicazione.

version: '3.8'
services:
  app:
    image: node:14
    working_dir: /usr/src/app
    volumes:
      - .:/usr/src/app
    ports:
      - '3000:3000'
    environment:
      - NODE_ENV=production
    deploy:
      resources:
        limits:
          cpus: '0.5'
          memory: 512M
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000/']
      interval: 1m30s
      timeout: 10s
      retries: 3

# Output: Il contenitore dell'app Node.js sarà esposto sulla porta 3000.

Perché funziona: Il file definisce un servizio 'app' con limiti di risorse e un healthcheck per monitorare la disponibilità dell'applicazione.

Step 2: Avviare il Servizio

Per avviare il servizio, utilizza il comando:

docker-compose up -d

# Output: Docker avvierà il contenitore in modalità detached.

Perché funziona: Il comando avvia tutti i servizi definiti nel file docker-compose.yml in background.

Step 3: Verificare lo Stato del Servizio

Controlla se il tuo servizio è in esecuzione e il suo stato di salute con:

docker-compose ps

# Output: Verrà mostrato lo stato del servizio e se l'healthcheck è superato o meno.

Perché funziona: La visualizzazione dello stato dei container permette di monitorare la loro disponibilità e salute.

Step 4: Implementare Best Practices di Sicurezza

È cruciale applicare best practices per la sicurezza nel tuo ambiente Docker. Ecco alcuni accorgimenti:

  • Utilizza immagini ufficiali e aggiornate.
  • Non esporre porte non necessarie.
  • Limitare i permessi ai container usando l'opzione user.
  • Imposta variabili d'ambiente sensibili usando Docker secrets.

Verifica Finale

Controlla l'efficacia della configurazione eseguendo:

docker-compose logs

# Output: Visualizzerai i log dell'applicazione per eventuali errori o debug.

Perché funziona: La revisione dei log aiuta a identificare rapidamente problemi e confermare che l'applicazione funzioni come previsto.

Troubleshooting

Ecco alcuni errori comuni che potresti incontrare e come risolverli:

  1. Errore: container_name app exited with code 1
    Causa: L'applicazione non riesce ad avviarsi a causa di errori nel codice.
    Fix:
    docker-compose logs app
  2. Errore: Healthcheck failed
    Causa: L'applicazione non risponde all'endpoint specificato.
    Fix:
    docker-compose exec app curl http://localhost:3000/
  3. Errore: Cannot connect to the Docker daemon
    Causa: Non è in esecuzione il servizio Docker.
    Fix:
    sudo systemctl start docker

Conclusione

Abbiamo visto come configurare con successo un ambiente Docker Compose per un'applicazione Node.js, con focus su healthchecks e sicurezza. Passa al passo successivo monitorando le performance con strumenti come Prometheus o Grafana per una visione completa del tuo sistema.