Aggiunta e Configurazione di un Sito Basato su Container Docker in ServBay
ServBay è un ambiente di sviluppo web locale progettato specificamente per macOS, supportando diversi linguaggi e stack tecnologici. Oltre a poter ospitare siti tramite i pacchetti integrati di ServBay (come PHP, Node.js, Python, Go, Java, database, ecc.), puoi anche utilizzare container Docker per eseguire e gestire i tuoi siti o servizi. Questo metodo offre grande flessibilità, isolamento ambientale e coerenza; è ideale soprattutto per progetti che richiedono ambienti o dipendenze particolari.
In questo articolo ti guideremo passo dopo passo su come aggiungere un sito in ServBay eseguito tramite container Docker, sfruttando la funzionalità di reverse proxy per integrarlo nei tuoi flussi di sviluppo locale.
Panoramica
Configurando ServBay come reverse proxy puoi inoltrare le richieste per domini specifici alle porte dei servizi in esecuzione all'interno dei container Docker. ServBay si occupa della gestione del traffico in ingresso (come certificati HTTPS, risoluzione DNS, ecc.), mentre Docker si concentra sull'esecuzione delle tue applicazioni. Questa modalità combina la comodità dell'interfaccia di gestione di ServBay con la potenza della containerizzazione Docker.
I passaggi seguenti ti guideranno nell’aggiunta e configurazione completa di un sito ospitato da un servizio Docker su ServBay.
Prerequisiti
Prima di iniziare, assicurati di aver soddisfatto le seguenti condizioni:
- ServBay installato e in esecuzione: Hai installato correttamente ServBay su macOS e lo hai avviato.
- Docker installato e attivo: Docker Desktop o un altro ambiente Docker è installato su macOS e il servizio Docker è in esecuzione.
- Immagine e container Docker pronti: Hai già costruito o scaricato l’immagine Docker contenente il tuo sito o applicazione, e sei in grado di avviare un container da quell’immagine.
Guida Dettagliata all’Aggiunta del Sito
Passo 1: Prepara ed Esegui il Container Docker
Per prima cosa, assicurati che il tuo container Docker sia attivo e che il servizio all’interno (ad esempio il server web) stia ascoltando sulla porta corretta, esposta verso il sistema host (cioè il tuo macOS) tramite il mapping delle porte di Docker.
Ad esempio, se hai un semplice container Nginx che ascolta internamente sulla porta 80, puoi utilizzare il seguente comando per mappare la porta 8080 del tuo host alla porta 80 del container:
docker run -d --name my-nginx-servbay -p 8080:80 nginx
In questo esempio, il servizio Nginx all’interno del container my-nginx-servbay
ascolta sulla porta 80
, che viene mappata grazie al parametro -p 8080:80
sulla porta 8080
del sistema host. ServBay dovrà quindi puntare alla porta 8080
dell’host.
Adatta la configurazione del Dockerfile e del comando in base alle tue esigenze, assicurandoti che il servizio all’interno del container ascolti sulla porta corretta, e che questa sia correttamente mappata su una porta disponibile del sistema host.
Passo 2: Apri l’Interfaccia di Gestione ServBay
Nella cartella Applicazioni del tuo macOS, cerca l’icona di ServBay
e fai doppio clic per avviare l’interfaccia di gestione.
Passo 3: Vai alla Pagina di Gestione dei Siti
Dopo l’avvio di ServBay vedrai l’interfaccia principale. Nel menu di navigazione a sinistra, trova e clicca sull’opzione Siti web
. Questo ti porterà alla pagina di gestione dei siti di ServBay, dove puoi visualizzare e configurare tutti i siti locali già aggiunti.
Illustrazione: clicca su “Siti web” nella barra di navigazione a sinistra per accedere alla pagina di gestione.
Passo 4: Aggiungi un Nuovo Sito
In fondo alla pagina di gestione dei siti trovi il pulsante +
. Cliccando su questo pulsante, ServBay espanderà un nuovo modulo sul lato destro dove potrai inserire i dati di configurazione del nuovo sito.
Illustrazione: clicca sul pulsante “+” in fondo alla pagina per aggiungere un nuovo sito.
Passo 5: Configura le Impostazioni del Sito
Nel modulo di configurazione del sito appena aperto, inserisci le seguenti informazioni chiave:
- Nome (Name): Scegli un nome facilmente identificabile per il sito, ad esempio
Docker Nginx Demo
. Questo serve solo per la gestione interna in ServBay. - Dominio (Domain): Inserisci il dominio locale che desideri utilizzare nel browser per accedere al sito in container Docker. Si consiglia di utilizzare il suffisso
.servbay.demo
per evitare conflitti con domini pubblici, comedocker.servbay.demo
. ServBay configurerà automaticamente il file hosts di sistema per puntare il dominio a127.0.0.1
. - Protocollo (Protocol): Seleziona il protocollo supportato dal sito. Di norma puoi lasciare il valore predefinito
HTTP/HTTPS
; ServBay ascolterà sia le porte HTTP (80) che HTTPS (443) e gestirà il traffico in base alle impostazioni SSL. - Metodo Richiesta Certificato SSL (SSL Certificate Request Method): Si consiglia di selezionare
ServBay CA
. ServBay genererà e gestirà automaticamente un certificato SSL locale firmato da ServBay User CA. Installando la ServBay Public CA nel portachiavi di sistema, i certificati locali saranno riconosciuti come attendibili dal browser, facilitando lo sviluppo e il test in HTTPS locale. In alternativa, puoi scegliereACME
(ad esempio per certificati Let's Encrypt) oCustom
(per inserire un tuo certificato). - Tipo di Sito (Website Type): [Importante] Scegli
Reverse Proxy (Proxy inverso)
. Questo significa che ServBay fungerà da punto di ingresso per il dominio e inoltrerà le richieste verso il servizio di backend indicato. - Indirizzo IP (IP Address): Inserisci l’indirizzo IP su cui il servizio Docker mappato è in ascolto. Per la maggior parte delle configurazioni locali Docker, sarà
127.0.0.1
. - Porta (Port): Indica la porta su cui il servizio Docker espone l’applicazione sull’host. Corresponde alla porta host del comando
docker run -p <porta host>:<porta container>
. Ad esempio, se hai usato-p 8080:80
, inserisci8080
qui.
Illustrazione: compila i dettagli di configurazione per il sito reverse proxy Docker.
Passo 6: Completa e Salva la Configurazione
Dopo aver inserito tutte le informazioni necessarie, clicca su Aggiungi (Add)
in fondo al modulo.
ServBay processerà la richiesta, aggiungendo automaticamente la regola di reverse proxy nella configurazione del suo web server (Caddy o Nginx) e aggiornando il file hosts del sistema per puntare al dominio locale scelto.
Una volta salvato, ServBay potrebbe impiegare qualche istante per applicare la configurazione: appena terminato sarai pronto a visitare il nuovo dominio locale appena creato.
Passo 7: Visita il Sito e Usa le Operazioni Rapide
Dopo aver salvato la configurazione e tornato alla pagina di gestione dei siti, vedrai il nuovo sito nell’elenco. Assicurati che il suo stato sia “In esecuzione”.
Ora puoi visitare il tuo sito digitando il dominio scelto nel browser (ad esempio http://docker.servbay.demo
o https://docker.servbay.demo
). Se tutto è configurato correttamente, ServBay inoltrerà la richiesta al servizio del container Docker e mostrerà la pagina fornita dal container.
Nell’elenco dei siti, ServBay offre diverse operazioni rapide, tra cui:
- Apri la directory root del sito in un IDE: (per i siti tipo reverse proxy, questo pulsante potrebbe essere disabilitato, oppure indicare la cartella di configurazione di ServBay, in base alla versione e alle impostazioni)
- Apri il sito nel browser: In un click, si apre il sito in una nuova scheda del browser.
- Visualizza i log del sito: Consulta i log di accesso ed errore raccolti da ServBay, utilissimi per il debug.
- Pausa/avvia sito: Disabilita o abilita temporaneamente la configurazione di reverse proxy di ServBay per il sito selezionato.
- Elimina sito: Rimuove la configurazione del sito da ServBay.
Illustrazione: pulsanti delle operazioni rapide disponibili nell’elenco dei siti.
Best Practice e Avvertenze
- Stato del container Docker: Assicurati che il container di destinazione sia sempre in esecuzione, altrimenti ServBay non potrà reindirizzare correttamente le richieste.
- Port mapping: Controlla con attenzione che il mapping delle porte (
-p
nei comandi Docker) e la porta inserita in ServBay coincidano, e che quella porta non sia utilizzata da altri programmi sul sistema host. - Firewall: Verifica le impostazioni del firewall di macOS per essere sicuro che le porte usate da ServBay (default 80, 443) e quelle esposte da Docker non siano bloccate.
- Modalità di rete Docker: Il modo più semplice è utilizzare la modalità
bridge
di default e il mapping delle porte tramite-p
. Se usi la modalitàhost
, ServBay può accedere direttamente alla porta interna del container (es. 80), ma possono insorgere conflitti di porte. - ServBay CA: Per agevolare lo sviluppo in HTTPS, è vivamente consigliato installare la ServBay Public CA: in questo modo i certificati generati da ServBay saranno riconosciuti come affidabili dal browser, evitando gli avvisi di sicurezza.
FAQ e Risoluzione Problemi
D: Dopo l’aggiunta il sito non è accessibile e il browser mostra errori di connessione o timeout.
R: Verifica i seguenti punti:
- Controlla lo stato del sito ServBay: Assicurati che nella gestione siti di ServBay il sito risulti "In esecuzione".
- Controlla lo stato del container Docker: Da terminale esegui
docker ps
e accertati che il container sia attivo. - Verifica il mapping delle porte Docker: Sempre con
docker ps
, controlla la colonna PORTS e assicurati che la porta host (es.0.0.0.0:8080->80/tcp
o127.0.0.1:8080->80/tcp
, il numero8080
) corrisponda a quella configurata in ServBay. - Verifica i servizi interni al container: Assicurati che il servizio web all'interno (Nginx, Apache, Node ecc.) sia in ascolto sulla porta corretta e che non ci siano errori interni. Consulta i log del container via
docker logs <ID o nome container>
. - Consulta i log di ServBay: Dall’elenco siti di ServBay, clicca sull’icona dei log per vedere i log di accesso o errore relativi a quel sito; qui potresti trovare dettagli sul motivo del mancato forwarding.
- Controlla il file hosts di sistema: Anche se ServBay aggiorna questo file in automatico, verifica manualmente in
/etc/hosts
che il dominio punti effettivamente a127.0.0.1
. - Verifica il firewall: Accertati che il firewall non stia bloccando le porte usate da ServBay o Docker.
D: Posso gestire i container Docker direttamente con ServBay?
R: ServBay si occupa della gestione dei servizi web locali, delle basi dati, dei linguaggi e dell’inoltro del traffico verso i backend (inclusi i container Docker). Non offre però una gestione completa del ciclo di vita dei container (avvio/arresto/build immagini, ecc.): per queste operazioni occorre utilizzare la CLI Docker o l’interfaccia di Docker Desktop.
D: Cos’è ServBay CA? Perché mi serve?
R: ServBay CA (Certificate Authority) è il sistema di gestione certificati offerto da ServBay per facilitare lo sviluppo in HTTPS locale. ServBay User CA firma i certificati per i tuoi siti locali, mentre ServBay Public CA è la root CA. Installando la Public CA nel sistema operativo, tutti i certificati firmati da ServBay User CA verranno riconosciuti come attendibili, evitando gli avvisi "connessione non sicura" nei browser durante lo sviluppo e il test. È fondamentale per simulare ambienti di produzione in HTTPS.
Conclusione
Aggiungere un sito ospitato tramite container Docker in ServBay è un metodo flessibile ed efficiente per lo sviluppo locale. ServBay funge da hub centrale per la gestione di traffico e domini, mentre Docker garantisce isolamento e scalabilità delle applicazioni. Grazie alla semplice configurazione del reverse proxy, puoi integrare rapidamente qualsiasi progetto containerizzato nei tuoi workflow ServBay. Seguendo questa guida e le best practice suggerite, sarai in grado di impostare e lanciare con successo il tuo sito Docker in ambiente locale.