Se sei mai stato curioso di sapere come configurare un server GitLab Community Edition (CE) con Docker e Docker Compose, sei nel posto giusto. Questa guida ti porterà attraverso ogni passaggio necessario per creare un ambiente GitLab efficiente e pronto all’uso. Ma prima, facciamo un passo indietro: cosa rende GitLab e Docker un’accoppiata vincente?
Perché GitLab e Docker?
GitLab CE è molto più di una semplice piattaforma per gestire il codice sorgente: offre funzionalità avanzate come pipeline CI/CD, gestione delle issue e repository Git. La versione Community Edition, gratuita e open-source, è ideale per chi vuole avere il controllo completo sui propri progetti senza costi aggiuntivi.
Aggiungi Docker e Docker Compose all’equazione e ottieni una configurazione modulare, facile da replicare e semplice da mantenere. Ecco perché questa combinazione è una delle più popolari tra sviluppatori e team DevOps.
Cosa ti serve per iniziare
Non possiamo iniziare senza i fondamentali:
- Docker e Docker Compose: se non li hai già, installali con:
sudo apt update && sudo apt install docker.io docker-compose -y - Un server con almeno 4 GB di RAM e spazio sufficiente per archiviare repository e log.
- Permessi di amministratore per gestire file e container.
Con tutto pronto, passiamo al vivo della configurazione.
Creare la base: directory e struttura
Per prima cosa, dobbiamo organizzare lo spazio dove GitLab salverà i suoi dati. Crea la struttura delle directory con:
mkdir -p /srv/gitlab/{config,logs,data}
Queste directory ospiteranno rispettivamente i file di configurazione, i log e i dati del sistema.
Il cuore della configurazione: docker-compose.yml
Il file docker-compose.yml è dove avviene la magia. Posizionati nella directory principale di GitLab e crea il file con:
nano /srv/gitlab/docker-compose.yml
Inserisci il seguente contenuto:
version: '3.8'
services:
gitlab:
image: gitlab/gitlab-ce:latest
container_name: gitlab
restart: always
hostname: 'gitlab.example.com'
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '22:22' # SSH
volumes:
- /srv/gitlab/config:/etc/gitlab
- /srv/gitlab/logs:/var/log/gitlab
- /srv/gitlab/data:/var/opt/gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.example.com' # Cambia con il tuo dominio o IP
Nota bene: sostituisci gitlab.example.com con il nome del dominio o l’indirizzo IP del tuo server. Questo passo è cruciale per garantire il corretto funzionamento del sistema.
Sistemare i permessi
Docker richiede che le directory siano accessibili con i permessi corretti. Esegui questo comando per assegnarli:
sudo chown -R 1000:1000 /srv/gitlab
Adesso tutto è pronto per l’avvio.
Avviare GitLab
Per avviare GitLab, spostati nella directory principale e utilizza Docker Compose:
cd /srv/gitlab sudo docker-compose up -d
In pochi minuti, il tuo server GitLab sarà attivo e funzionante. Puoi accedervi tramite browser all’indirizzo:
http://<IP_del_server>oppurehttp://gitlab.example.com(se configurato).
Alla prima apertura, ti verrà chiesto di impostare la password dell’utente amministratore (root). Inseriscila e accedi.
HTTPS: opzione per la sicurezza
Se desideri migliorare la sicurezza del tuo server con HTTPS:
- Ottieni un certificato SSL (ad esempio con Let’s Encrypt).
- Modifica il file
docker-compose.yml, aggiornando la variabileexternal_url:external_url 'https://gitlab.example.com' - Posiziona i certificati SSL nella directory
/srv/gitlab/config/ssl/.
Con queste modifiche, il tuo server utilizzerà HTTPS per tutte le comunicazioni.
Strumenti utili per la gestione del container
Gestire un container Docker non è mai stato così semplice. Ecco alcuni comandi che potrebbero tornarti utili:
- Avviare il container:
sudo docker-compose up -d - Arrestare il container:
sudo docker-compose down - Visualizzare i log:
sudo docker-compose logs -f - Aggiornare GitLab:
sudo docker-compose pull sudo docker-compose up -d
E ora tocca a te
Con questa guida hai tutto il necessario per configurare un server GitLab CE utilizzando Docker e Docker Compose. Non solo avrai un sistema robusto e scalabile, ma potrai anche espanderlo con facilità secondo le esigenze del tuo team.
Credits: Articolo scritto con il supporto di ChatGPT, immagine in testa generata con Dall-E.

Leave a Reply
You must be logged in to post a comment.