Files
Data-Coupler/DOCKER_DEPLOYMENT.md
T
Alessio Dal Santo 23c2788fcf -Aggiunta configurazione tramite dockerfile per windows e linux
-Aggiunte github actions per la compilazione dei container e l'esposizione
2026-01-16 14:16:15 +01:00

6.8 KiB

Data-Coupler Docker Deployment Guide

📦 Container Images

Le immagini Docker sono disponibili su GitHub Container Registry:

Immagini Disponibili

Branch Main (Produzione)

  • Linux: ghcr.io/alessiodalsi/data-coupler:latest
  • Windows: ghcr.io/alessiodalsi/data-coupler:latest-windows
  • Multi-Platform: ghcr.io/alessiodalsi/data-coupler:latest (seleziona automaticamente)

Branch Dev (Sviluppo)

  • Linux: ghcr.io/alessiodalsi/data-coupler:dev-latest
  • Windows: ghcr.io/alessiodalsi/data-coupler:dev-latest-windows

Branch Staging

  • Linux: ghcr.io/alessiodalsi/data-coupler:staging-latest
  • Windows: ghcr.io/alessiodalsi/data-coupler:staging-latest-windows

🚀 Quick Start

Pull dell'Immagine (Pubblico - senza autenticazione)

Per consentire il pull senza credenziali, le immagini devono essere configurate come pubbliche sul repository GitHub.

Per rendere il container pubblico:

  1. Vai su GitHub Repository → Packages
  2. Seleziona il package data-coupler
  3. Settings → Change visibility → Public

Una volta pubblico:

# Pull immagine Linux
docker pull ghcr.io/alessiodalsi/data-coupler:latest

# Pull immagine Windows
docker pull ghcr.io/alessiodalsi/data-coupler:latest-windows

Pull con Autenticazione (Container Privato)

Se il container rimane privato ma vuoi consentire pull specifici:

# 1. Crea un Personal Access Token (PAT) su GitHub
#    Settings → Developer settings → Personal access tokens → Tokens (classic)
#    Seleziona scope: read:packages

# 2. Login al registry
echo "YOUR_GITHUB_TOKEN" | docker login ghcr.io -u YOUR_GITHUB_USERNAME --password-stdin

# 3. Pull dell'immagine
docker pull ghcr.io/alessiodalsi/data-coupler:latest

Esecuzione del Container

Linux

docker run -d \
  --name data-coupler \
  -p 7550:7550 \
  -v /var/lib/data-coupler:/var/lib/Data_Coupler \
  --restart unless-stopped \
  ghcr.io/alessiodalsi/data-coupler:latest

Windows

docker run -d `
  --name data-coupler `
  -p 7550:7550 `
  -v C:\ProgramData\Data_Coupler:C:\ProgramData\Data_Coupler `
  --restart unless-stopped `
  ghcr.io/alessiodalsi/data-coupler:latest-windows

🐳 Docker Compose

Linux

version: '3.8'

services:
  data-coupler:
    image: ghcr.io/alessiodalsi/data-coupler:latest
    container_name: data-coupler
    ports:
      - "7550:7550"
    volumes:
      - data-coupler-data:/var/lib/Data_Coupler
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:7550
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7550/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

volumes:
  data-coupler-data:
    driver: local

Windows

version: '3.8'

services:
  data-coupler:
    image: ghcr.io/alessiodalsi/data-coupler:latest-windows
    container_name: data-coupler
    ports:
      - "7550:7550"
    volumes:
      - C:\ProgramData\Data_Coupler:C:\ProgramData\Data_Coupler
    environment:
      - ASPNETCORE_ENVIRONMENT=Production
      - ASPNETCORE_URLS=http://+:7550
    restart: unless-stopped

Avvio:

docker-compose up -d

🔧 Configurazione Avanzata

Variabili d'Ambiente

docker run -d \
  --name data-coupler \
  -p 7550:7550 \
  -e ASPNETCORE_ENVIRONMENT=Production \
  -e ASPNETCORE_URLS=http://+:7550 \
  -e Logging__LogLevel__Default=Information \
  -v /var/lib/data-coupler:/var/lib/Data_Coupler \
  ghcr.io/alessiodalsi/data-coupler:latest

Volumi Persistenti

I dati del database e le configurazioni vengono salvati in:

  • Linux: /var/lib/Data_Coupler/credentials.db
  • Windows: C:\ProgramData\Data_Coupler\credentials.db

Port Mapping

L'applicazione ascolta sulla porta 7550 per impostazione predefinita.

# Cambio porta (es. 8080)
docker run -d -p 8080:7550 ghcr.io/alessiodalsi/data-coupler:latest

🔒 Gestione Accessi Container Privato

Opzione 1: Token Personale (PAT)

# Salva il token in un file
echo "YOUR_GITHUB_TOKEN" > ~/.github-token

# Login con il token
cat ~/.github-token | docker login ghcr.io -u YOUR_USERNAME --password-stdin

Opzione 2: GitHub Actions Deploy Key

Per deploy automatici da CI/CD, usa il GITHUB_TOKEN fornito automaticamente:

- name: Login to GitHub Container Registry
  uses: docker/login-action@v3
  with:
    registry: ghcr.io
    username: ${{ github.actor }}
    password: ${{ secrets.GITHUB_TOKEN }}

Opzione 3: Container Pubblico (Nessuna Autenticazione)

Per consentire pull senza credenziali:

  1. Vai su: https://github.com/AlessioDalsi/Data-Coupler/packages
  2. Seleziona il package data-coupler
  3. Package settingsChange visibilityPublic
  4. Conferma il cambio di visibilità

⚠️ Attenzione: Un container pubblico può essere scaricato da chiunque.

📊 Monitoraggio e Log

Visualizzazione Log

# Log in tempo reale
docker logs -f data-coupler

# Ultimi 100 log
docker logs --tail 100 data-coupler

Health Check

# Verifica lo stato del container
docker ps --filter name=data-coupler

# Test health endpoint
curl http://localhost:7550/health

Statistiche Risorse

# Utilizzo risorse container
docker stats data-coupler

🛠️ Build Locale

Se vuoi buildare le immagini localmente:

Linux

docker build -t data-coupler:local -f Dockerfile .

Windows

docker build -t data-coupler:local-windows -f Dockerfile.windows .

🔄 Aggiornamento Container

# 1. Pull ultima versione
docker pull ghcr.io/alessiodalsi/data-coupler:latest

# 2. Stop container corrente
docker stop data-coupler

# 3. Rimuovi container (mantiene i volumi)
docker rm data-coupler

# 4. Avvia nuovo container
docker run -d \
  --name data-coupler \
  -p 7550:7550 \
  -v /var/lib/data-coupler:/var/lib/Data_Coupler \
  --restart unless-stopped \
  ghcr.io/alessiodalsi/data-coupler:latest

📋 Troubleshooting

Container non si avvia

# Controlla i log
docker logs data-coupler

# Verifica permessi directory
ls -la /var/lib/data-coupler  # Linux
dir C:\ProgramData\Data_Coupler  # Windows

Porta già in uso

# Verifica processi sulla porta 7550
netstat -tuln | grep 7550  # Linux
netstat -ano | findstr :7550  # Windows

# Usa porta alternativa
docker run -d -p 8080:7550 ghcr.io/alessiodalsi/data-coupler:latest

Problemi di connessione database

# Verifica volumi
docker volume ls
docker volume inspect data-coupler-data

# Accedi al container per debug
docker exec -it data-coupler bash  # Linux
docker exec -it data-coupler powershell  # Windows

🌐 Accesso all'Applicazione

Dopo l'avvio del container, accedi all'applicazione:

http://localhost:7550

Versione: 1.0
Framework: .NET 9.0
Maintainer: Alessio Dalsanto