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.