Implantando o GitLab 16.4.1 com Docker Compose

Versões utilizadas

Este guia considera a instalação da versão 16.4.1 do GitLab em um ambiente Linux com as seguintes ferramentas:

  • Docker Engine 24.0.6 ou supreior
  • Plugin Docker Compose v2.21.0 ou superior

O Docker Compose já está integrado ao cliente Docker, portanto não é preciso instalar um pacote separado. Para confirmar as versões, execute:

docker version
docker compose version

Arquivo docker-compose.yml

Crie um diretório de trabalho e, dentro dele, o arquivo docker-compose.yml com o conteúdo abaixo. O exemplo usa a imagem oficial Community Edition e mapeia volumes nomeados para persistência:

services:
  gitlab:
    image: 'gitlab/gitlab-ce:16.4.1-ce.0'
    container_name: gitlab-server
    hostname: 'gitlab.local'
    restart: unless-stopped
    shm_size: '4g'
    ports:
      - '8080:80'
      - '2222:22'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.168.140.80:8080'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
        gitlab_rails['smtp_enable'] = true
        gitlab_rails['smtp_address'] = 'smtp.example.com'
        gitlab_rails['smtp_port'] = 465
        gitlab_rails['smtp_user_name'] = 'seu-email@example.com'
        gitlab_rails['smtp_password'] = 'sua-senha-de-app'
        gitlab_rails['smtp_domain'] = 'example.com'
        gitlab_rails['smtp_authentication'] = 'login'
        gitlab_rails['smtp_tls'] = true
        gitlab_rails['smtp_openssl_verify_mode'] = 'none'
        gitlab_rails['gitlab_email_enabled'] = true
        gitlab_rails['gitlab_email_from'] = 'seu-email@example.com'
        gitlab_rails['gitlab_email_display_name'] = 'GitLab Admin'
        gitlab_rails['gitlab_email_reply_to'] = 'seu-email@example.com'
        gitlab_rails['gitlab_ssh_host'] = '192.168.140.80'
    volumes:
      - gitlab-config:/etc/gitlab
      - gitlab-logs:/var/log/gitlab
      - gitlab-data:/var/opt/gitlab
    ulimits:
      nproc: 65535
      nofile:
        soft: 20000
        hard: 40000

volumes:
  gitlab-config:
  gitlab-logs:
  gitlab-data:

Atualize os valores de external_url, gitlab_ssh_host, servidor SMTP e credenciais de e-mail conforme o seu ambiente.

Iniciar o serviço

No mesmo diretório do arquivo de composição, execute:

docker compose up -d

O GitLab demora alguns minutos para inicializar pela primeira vez. Acompanhe os logs com:

docker compose logs -f gitlab

Requisitos de hardware

O GitLab é exigente em relação à memória. Recomenda-se pelo menos 16 GB de RAM para uma instância funcional. Se o host estiver com pouca memória, o processo de reconfiguração pode falhar com erros do tipo Errno::ENOMEM.

Senha inicial do administrador

Durante a primeira execução, o GitLab grava a senha do usuário root em:

config/initial_root_password

Se você usou volumes nomeados, copie o arquivo do contêiner para a máquina host antes de lê-lo:

docker compose cp gitlab:/etc/gitlab/initial_root_password ./initial_root_password
cat ./initial_root_password

O arquivo contém uma senha temporária e é removido automaticamente após 24 horas ou após o primeiro reconfigure. Faça login como root com essa senha e altere-a imediatamente.

Tags: gitlab Docker Compose Omnibus SMTP Linux

Publicado em 7-20 02:29