# Konténer alapú telepítés

Először hozzunk létre egy docker-compose fájlt a következőképpen

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ee:latest'
    restart: always
    hostname: 'git.skriba.hu'
    environment:
            GITLAB_OMNIBUS_CONFIG: |
                external_url 'https://git.skriba.hu'
                gitlab_rails['time_zone'] = "UTC"
                gitlab_rails['gitlab_shell_ssh_port']=62100
                gitlab_rails['gitlab_ssh_host'] = "git.skriba.hu"
                nginx['listen_port'] = 8081
                nginx['listen_https'] = false
    ports:
      - '8081:8081'
      - '444:443'
      - '62100:22'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m'

A fent látható példában a GITLAB_OMNIBUS_CONFIG értékek magyarázata:

  • external_url - az a cím ahonnan a gitlabot el akarjuk érni. Ez az érték másolódik be a clone url-be, illetve a GitLab-nak el kell érnie saját magát ezen a címen. Mivel általában a szolgáltatást a webszerveren beállított reverse proxy-n keresztül érjük el (lásd később), ezért adjuk hozzá a 127.0.0.1 git.skriba.hu bejegyzést az /etc/hosts fájl-hoz, hogy a GitLab localhost-on elérje saját magát.
  • gitlab_rails['gitlab_shell_ssh_port'] - ezen a porton keresztül lehet SSH-n klónozni a projektet. Mivel általában a szerveren már fut egy OpenSSH a 22-es porton, ezért célszerű ettől eltértő portot megadni. Itt azért fontos ezt külön beállítani, mert ez alapján állítódik be a clone url a projektekhez.
  • nginx['listen_port'] - a GitLab belső nginx webszerveréhez beállított port

A compose fájl-ban a fenti értékekkel összhangban állítsuk be a következő portokat:

  • Webszerver port - ezen a porton érhető el a GitLab webes felülete. Mivel a szerveren általában már foglalt a 80-as port, ezért céleszerű attól eltérő értéket beállítani. Fontos, a belső port egyezzen meg a külsővel.
  • HTTPS port - https port
  • SSH port - ssh port

Végül a volumes-nál állítsuk be, hogy a konténeren kívül is elérjük a beállításokat és logokat

Ezek után a szokásos módon indítsuk el a konténert