Aggiunta e configurazione di un sito web basato su Docker in ServBay
ServBay è un ambiente di sviluppo web locale compatibile con macOS e Windows, che supporta diversi linguaggi e tecnologia. Oltre a eseguire direttamente i software integrati di ServBay (come PHP, Node.js, Python, Go, Java, database, ecc.) per l’hosting di siti web, puoi anche utilizzare container Docker per eseguire e gestire i tuoi servizi o progetti web. Questo metodo offre massima flessibilità, isolamento dell’ambiente e coerenza, ideale soprattutto per progetti che richiedono dipendenze o ambienti specifici.
In questo articolo, vedrai come aggiungere un sito web gestito da un container Docker in ServBay, integrandolo nel tuo flusso di lavoro locale tramite la funzione di reverse proxy di ServBay.
Panoramica
Configurando ServBay come reverse proxy, puoi fare in modo che le richieste a determinati domini vengano inoltrate a porte di servizio ospitate all’interno di container Docker. ServBay si occupa del traffico in ingresso (gestione di certificati HTTPS, risoluzione dei domini, ecc.), mentre il container Docker si concentra sull’esecuzione dell’applicazione. Questo approccio unisce la comodità della gestione centralizzata di ServBay alla potenza della containerizzazione offerta da Docker.
Di seguito, la guida passo-passo per aggiungere e configurare un sito web gestito da Docker in ServBay.
Prerequisiti
Prima di iniziare, assicurati di avere questi requisiti:
- ServBay installato e attivo: ServBay deve essere installato e avviato correttamente su macOS.
- Docker installato e operativo: Docker Desktop o un altro ambiente Docker deve essere installato su macOS e il servizio Docker deve essere in esecuzione.
- Immagini e container Docker pronti: Devi già avere l’immagine Docker del tuo sito/applicazione (costruita o scaricata) e devi poter avviare il relativo container.
Procedura dettagliata per aggiungere un sito web
Passaggio 1: Prepara ed avvia il container Docker
Prima di tutto, accertati che il tuo container Docker sia avviato e che il servizio interno (ad esempio il web server) stia ascoltando su una porta che sia mappata dalla macchina host (cioè il tuo macOS) tramite la funzione di port mapping di Docker.
Supponiamo di avere un container semplice con Nginx che ascolta sulla porta 80. Puoi usare questo comando per mappare la porta 8080 della tua macchina host sulla porta 80 del container:
bash
docker run -d --name my-nginx-servbay -p 8080:80 nginx
1
In questo esempio, il servizio Nginx interno al container my-nginx-servbay
ascolta sulla porta 80
, ma tramite il parametro -p 8080:80
la porta 80
del container viene mappata sulla porta 8080
della macchina host. ServBay dovrà connettersi alla porta 8080
dell’host.
Assicurati, in base alle esigenze della tua applicazione e alla configurazione Dockerfile, che il servizio interno al container sia impostato sulla porta corretta e che questa sia mappata sulla macchina host.
Passaggio 2: Avvia l’interfaccia di gestione ServBay
Vai sulla cartella delle applicazioni di macOS, trova l’icona di ServBay
e fai doppio clic per aprire l’interfaccia di gestione.
Passaggio 3: Naviga alla pagina di gestione dei siti web
Una volta aperto ServBay, vedrai la schermata principale. Sul menu di navigazione a sinistra, seleziona la voce Siti web
. Qui puoi visualizzare e configurare tutti i siti locali aggiunti a ServBay.
Illustrazione: clicca su “Siti web” nella barra laterale per accedere alla gestione.
Passaggio 4: Aggiungi un nuovo sito web
In fondo alla pagina di gestione siti, troverai un pulsante +
. Cliccalo e ServBay aprirà sulla destra un nuovo modulo per l’inserimento delle informazioni di configurazione del sito.
Illustrazione: clicca sul “+” in basso per aggiungere un nuovo sito.
Passaggio 5: Configura le impostazioni del sito
Nel modulo appena aperto, inserisci i dati chiave seguenti:
- Nome (Name): Dai al sito un nome facile da riconoscere, come
Docker Nginx Demo
. Questo serve solo all’organizzazione interna di ServBay. - Dominio (Domain): Scrivi il nome di dominio locale con cui visiterai il sito dal browser. Si consiglia di usare il suffisso
.servbay.demo
per evitare conflitti con domini pubblici, ad esempiodocker.servbay.demo
. ServBay aggiornerà automaticamente il file hosts del sistema per puntare il dominio a127.0.0.1
. - Protocollo (Protocol): Scegli il protocollo supportato dal sito. In genere si può mantenere la selezione predefinita
HTTP/HTTPS
. ServBay ascolterà sia sulle porte HTTP (80) che HTTPS (443) e gestirà l’SSL secondo la configurazione. - Metodo richiesta certificato SSL (SSL Certificate Request Method): Si consiglia di scegliere
ServBay CA
. ServBay genererà e gestirà in automatico un certificato SSL affidabile e firmato dalla User CA di ServBay. Installando la Public CA di ServBay nel portachiavi del sistema, il browser riconoscerà i certificati locali come affidabili, semplificando la fase di sviluppo e test HTTPS. In alternativa, è possibile scegliereACME
(ad esempio per certificati Let's Encrypt) oCustom
(per l’uso di certificati propri). - Tipo di sito (Website Type): [Fondamentale] Seleziona
Reverse Proxy
. Questo significa che ServBay sarà il punto di ingresso per il dominio e reindirizzerà le richieste al backend specificato. - Indirizzo IP (IP Address): Inserisci l’indirizzo IP della macchina host su cui il servizio Docker sta ascoltando. Nella maggior parte dei casi, sarà l’indirizzo di loopback
127.0.0.1
. - Porta (Port): Inserisci il numero di porta utilizzato dalla macchina host per esporre il servizio Docker. Corrisponde al valore
<host port>
che hai usato nel comandodocker run -p <host port>:<container port>
. Ad esempio, se hai usato-p 8080:80
, qui scrivi8080
.
Illustrazione: inserimento delle impostazioni per reverse proxy Docker.
Passaggio 6: Salva la configurazione
Dopo aver inserito tutte le informazioni, premi il pulsante Aggiungi (Add)
in fondo al modulo.
ServBay elaborerà la richiesta, aggiungendo automaticamente le regole di reverse proxy necessarie nel server web (Caddy o Nginx) e aggiornando il file hosts del sistema con il dominio locale che hai scelto.
Se la procedura va a buon fine, ServBay applicherà velocemente la nuova configurazione, e potrai testare subito l’accesso al dominio appena aggiunto.
Passaggio 7: Visita il sito e usa le azioni rapide
Una volta salvata la configurazione, torna alla pagina di gestione siti e verifica che il nuovo sito sia in lista e risulti “Attivo”.
Adesso puoi visitare il dominio inserito dal browser (ad esempio http://docker.servbay.demo
oppure https://docker.servbay.demo
). Se la configurazione è corretta, ServBay reindirizzerà la richiesta al servizio del container Docker, mostrando la pagina fornita dal container.
Nell’elenco dei siti, troverai diversi utili pulsanti di azione rapida:
- Apri la root del sito con un IDE: (Per siti di tipo reverse proxy, questo pulsante potrebbe non essere disponibile o puntare alla directory di configurazione di ServBay, a seconda della versione e impostazioni)
- Apri il sito nel browser: Apre rapidamente l’URL del sito in una nuova scheda.
- Visualizza i log del sito: Accedi ai log di ServBay del sito (accesso ed errori), utili per la diagnosi e debug.
- Disattiva/attiva il sito: Permette di disabilitare o abilitare temporaneamente le regole di configurazione reverse proxy per il sito.
- Elimina il sito: Rimuove la configurazione del sito da ServBay.
Illustrazione: azioni rapide disponibili per i siti ServBay.
Note importanti e best practice
- Stato del container Docker: Il container Docker target deve essere sempre attivo, altrimenti ServBay non potrà effettuare il forwarding delle richieste.
- Port mapping: Controlla attentamente la configurazione del port mapping (
-p
) di Docker e il numero di porta inserito in ServBay. Assicurati che la porta sulla macchina host non sia occupata da altri programmi. - Firewall: Verifica che il firewall di macOS non blocchi le porte usate da ServBay (di default 80, 443) e da Docker sul tuo host.
- Modalità di rete Docker: Di solito, usare la modalità
bridge
di Docker e mappare la porta con-p
è il metodo più semplice. In modalitàhost
, ServBay potrà accedere direttamente alla porta di ascolto interna al container (ad esempio 80), ma questa modalità può presentare problemi di conflitti di porta. - ServBay CA: Per uno sviluppo HTTPS comodo, si raccomanda caldamente di installare la ServBay Public CA. In questo modo, i certificati locali creati da ServBay saranno riconosciuti come validi dal browser, evitando allarmi di sicurezza.
Domande frequenti e risoluzione problemi (FAQ)
D: Dopo aver aggiunto il sito, non riesco ad accedervi e il browser mostra errore di connessione o timeout?
R: Ecco cosa controllare:
- Verifica lo stato del sito ServBay: Nella page di gestione siti, assicurati che il sito sia segnato come “Attivo”.
- Verifica lo stato del container Docker: Lancia il comando
docker ps
nel terminale e verifica che il container interessato sia attivo. - Verifica il port mapping di Docker: Sempre con
docker ps
, controlla nella colonnaPORTS
che la porta dell’host (ad es.,0.0.0.0:8080->80/tcp
o127.0.0.1:8080->80/tcp
con8080
) corrisponda a quella impostata in ServBay. - Verifica il servizio interno al container: Il servizio web (Nginx, Apache, Node.js, ecc.) del container deve ascoltare sulla porta giusta e non avere errori. Controlla i log con
docker logs <ID o nome container>
. - Controlla i log di ServBay: Tramite l’icona log nell’elenco siti, consulta i log di accesso ed errore; possono contenere dettagli utili sulle cause dei problemi di forwarding.
- Controlla il file hosts del sistema: Anche se ServBay lo gestisce in modo automatico, puoi controllare manualmente
/etc/hosts
e verificare che il dominio punti a127.0.0.1
. - Controlla il firewall: Assicurati che firewall non blocchi le porte usate da ServBay e dalle mappature Docker.
D: Posso gestire direttamente i container Docker da ServBay?
R: ServBay si occupa principalmente di gestire servizi web, database e ambienti di sviluppo locali e di smistare il traffico verso i servizi backend (inclusi i container Docker). Non offre una gestione completa del ciclo di vita dei container Docker (avvio, stop, build, ecc.): per queste operazioni continua a servirti la CLI di Docker o l’interfaccia visiva di Docker Desktop.
D: Cos’è ServBay CA? Perché dovrei installarla?
R: ServBay CA (Certificate Authority) è il meccanismo di gestione dei certificati pensato da ServBay per semplificare lo sviluppo locale in HTTPS. La User CA di ServBay firma i certificati SSL locali, mentre la Public CA di ServBay ne costituisce la radice. Installando la Public CA nel portachiavi del sistema, il sistema operativo e il browser considereranno affidabili tutti i certificati firmati dalla User CA, eliminando i messaggi di “connessione non sicura” durante lo sviluppo locale con HTTPS, e permettendo un ambiente che simuli fedelmente la produzione.
Conclusione
Aggiungere un sito web gestito tramite container Docker in ServBay è un processo semplice ed estremamente flessibile, che sfrutta ServBay come punto centrale per la gestione di traffico e domini locali e utilizza Docker per eseguire e isolare l’ambiente dell’applicazione. Attraverso una rapida configurazione di reverse proxy, puoi integrare agevolmente qualsiasi progetto Docker nel tuo flusso di lavoro ServBay. Seguendo i passaggi e i suggerimenti dell’articolo, sarai in grado di configurare e far funzionare al meglio il tuo sito web locale containerizzato.