Installare GitLab CE con Docker e Docker Compose: una guida passo passo

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> oppure
  • http://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:

  1. Ottieni un certificato SSL (ad esempio con Let’s Encrypt).
  2. Modifica il file docker-compose.yml, aggiornando la variabile external_url:external_url 'https://gitlab.example.com'
  3. 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.