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.