Deploy da GitHub, GitLab e immagini Docker
Deplomo PaaS ti permette di eseguire il deploy del codice sorgente e delle applicazioni senza gestire manualmente il sistema operativo del server. Questa guida spiega come eseguire il deploy da GitHub, collegare un’istanza GitLab self-hosted, distribuire un’immagine Docker, configurare la variabile PORT e impostare un monorepo. Per istruzioni specifiche per linguaggi e strumenti, consulta le guide al deploy .
Ambiente di test internazionale: i pagamenti del wallet usano Paddle sandbox e il provisioning dei servizi resta disattivato durante la convalida del flusso.
Sorgenti dei servizi
Ogni servizio Deplomo usa una sorgente che determina come viene creata l’immagine del container:
- Repository Git: esegui il deploy da GitHub o da un repository GitLab self-hosted. La piattaforma può rilevare automaticamente il framework oppure creare l’immagine da un Dockerfile.
- Immagine Docker: esegui un’immagine da Docker Hub o da un registry privato.
- Cartella locale tramite CLI: carica il codice locale con
deplomo deploy. - Template del Marketplace: esegui il deploy da un template di un database supportato o di uno strumento open source.
1. Deploy da GitHub
Deplomo si collega a GitHub tramite la sua GitHub App. Non devi condividere password o chiavi SSH.
Collega il tuo account GitHub
Nel pannello Deplomo, avvia la creazione di un servizio oppure apri il menu delle connessioni Git nella sezione Programmi e seleziona Connetti a GitHub. Verrai reindirizzato a GitHub per autorizzare l’accesso.
Scegli a quali repository dare accesso
Puoi concedere l’accesso a tutti i repository oppure solo a quelli che selezioni. Puoi modificare questa scelta in qualsiasi momento dalle impostazioni di GitHub.
Seleziona un repository e un branch
Torna al pannello e scegli uno dei repository pubblici o privati autorizzati e il branch da distribuire, per esempio main o production.
Attiva il deploy automatico
Quando il deploy automatico è attivo, ogni git push sul branch collegato avvia una nuova build e il relativo deploy. GitHub registra il risultato della build come stato del commit.
La GitHub App concede a Deplomo l’accesso in lettura al codice del repository per creare l’applicazione.
2. Collega un’istanza GitLab self-hosted
Se la tua organizzazione ospita il codice su un server GitLab self-hosted , puoi collegarlo a Deplomo:
- Nella pagina di selezione della sorgente del progetto, scegli GitLab Self-hosted.
- Inserisci l’URL completo dell’istanza GitLab, per esempio
https://gitlab.company.com. - In GitLab crea un Personal Access Token con i permessi
read_apieread_repository, poi inseriscilo nel campo corrispondente. - Dopo la convalida del token e il caricamento dell’elenco dei progetti, scegli il branch di deploy e attiva il webhook di sincronizzazione se vuoi automatizzare i deploy.
3. Esegui il deploy di un’immagine Docker
Usa un’immagine Docker se la tua pipeline CI/CD la crea già o se vuoi eseguire software commerciale o open source senza compilare il codice sorgente.
Deplomo scarica l’immagine dal registry e la esegue in un container con le risorse CPU e memoria assegnate al servizio. Per maggiori informazioni, consulta la pagina Container cloud .
Configura l’immagine
- Immagine e tag: usa un tag specifico, come
my-app:v1.2.0. Evitalatestin produzione: può cambiare tra un deploy e l’altro e rendere meno prevedibili i rollback. - Registry privato: se l’immagine si trova in un registry che richiede l’autenticazione, inserisci il nome utente e il token di accesso. Le credenziali vengono salvate in forma cifrata sul server.
- Porta del container: imposta la porta su cui l’applicazione ascolta nel container, per esempio
80o8080, in modo che il traffico in ingresso raggiunga la porta corretta.
4. Rilevamento automatico del framework e build con Dockerfile
Dopo aver ricevuto il repository, Deplomo cerca i file che identificano il framework del progetto:
- Node.js:
package.json - Python:
requirements.txt,Pipfileopyproject.toml - Go:
go.mod - PHP:
composer.json - Rust:
Cargo.toml
Se il repository contiene un Dockerfile, la piattaforma lo usa per creare l’immagine dell’applicazione.
Per eseguire il deploy di una cartella locale dalla CLI o tramite un assistente AI, puoi aggiungere un file facoltativo deplomo.json per definire la porta, il comando di avvio e le variabili necessarie. Esegui deplomo check per individuare i problemi comuni prima del deploy. Per i dettagli, consulta il riferimento dei comandi CLI.
Monorepo
Non serve dividere un repository che contiene più applicazioni o pacchetti. Imposta Root Directory sulla cartella del servizio che vuoi distribuire. Per i dettagli di configurazione, consulta la guida al deploy dei monorepo .
5. La variabile d’ambiente PORT
Le applicazioni web e le API devono accettare il traffico in ingresso sulla porta specificata dalla variabile d’ambiente PORT. La piattaforma imposta questa variabile all’avvio del container.
Se l’applicazione ascolta su una porta fissa, come 3000, o solo su 127.0.0.1, la piattaforma non riesce a raggiungere il container e il controllo di integrità può andare in timeout. Il processo deve ascoltare su 0.0.0.0.
Esempi: usa PORT nell’applicazione
Node.js (Express)
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
const host = '0.0.0.0';
app.listen(port, host, () => {
console.log(`Server is running on http://${host}:${port}`);
});Python (FastAPI con Uvicorn)
import os
import uvicorn
if __name__ == "__main__":
port = int(os.environ.get("PORT", 8000))
uvicorn.run("main:app", host="0.0.0.0", port=port)Go
package main
import (
"fmt"
"net/http"
"os"
)
func main() {
port := os.Getenv("PORT")
if port == "" {
port = "8080"
}
http.ListenAndServe("0.0.0.0:"+port, nil)
}Confronta i metodi di deploy
| Caratteristica | GitHub o GitLab | Dockerfile nel repository | Immagine Docker |
|---|---|---|---|
| Primo deploy | Rapido con il rilevamento automatico | Richiede la build dei layer Docker | Rapido: non serve creare l’immagine |
| Controllo delle dipendenze | Gestito dalla piattaforma | Completo, tramite i comandi RUN e i layer dell’immagine | Completo nell’immagine, indipendente dalla build della piattaforma |
| Integrazione CI/CD | Webhook a ogni push Git | Webhook a ogni push Git | Compatibile con strumenti di build e registry |
| Conoscenze di Docker | Non necessarie | È utile conoscere i Dockerfile | Servono per creare e pubblicare l’immagine |
| Uso tipico | Siti web, API e applicazioni basate su framework | Applicazioni personalizzate con pacchetti specifici | Microservizi e strumenti pronti all’uso |
Problemi comuni e verifiche
- Il servizio non ascolta su
PORT: se la build riesce ma il servizio non si avvia, verifica che l’applicazione ascolti su0.0.0.0:$PORT. - Log di build e runtime: nel pannello, Build Logs mostra i download dei pacchetti e gli errori di compilazione; Runtime Logs mostra l’output standard dell’applicazione.
- Variabili di build e runtime: imposta le variabili necessarie durante la build del frontend in Build-time Variables. Usa Runtime Variables per le credenziali del database e gli altri valori necessari solo a runtime.