Preparação do Ambiente de Containerização
Antes de provisionar o serviço, instale as dependências de armazenamento em camadas e configure o repositório oficial no sistema base.
# Instalar utilitários de sistema e gerenciadores de volume
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Registrar o canal oficial da ferramenta
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Instalar o motor e ativar o daemon
sudo yum install -y docker-ce
sudo systemctl enable --now docker
# Verificar a versão instalada
docker --version
Aquisição da Imagem Oficial
Obtenha a versão community edition atualizada diretamente do registro público.
docker pull gitlab/gitlab-ce:latest
Instanciação e Persistência de Dados
Estruture os diretórios de retenção no host e execute o contêiner. O exemplo utiliza portas não padrão para evitar colisões com servidores web ou SSH locais.
# Criar hierarquia para configuração, logs e repositórios
mkdir -p /opt/gitlab-host/{config,logs,data}
# Iniciar o serviço isolado
docker run -d \
--publish 8443:80 \
--publish 2022:22 \
--volume /opt/gitlab-host/config:/etc/gitlab \
--volume /opt/gitlab-host/logs:/var/log/gitlab \
--volume /opt/gitlab-host/data:/var/opt/gitlab \
--restart always \
--name srv-gitlab \
gitlab/gitlab-ce:latest
--publish: Redireciona o tráfego HTTP e SSH para as portas 8443 e 2022 do hospedeiro.--volume: Mapeia volumes persistentes para garantir que repositórios e ajustes não sejam perdidos durante atualizações ou reinicializações.--restart always: Mantém o serviço ativo após falhas ou reboot do sistema.
Configuração de Rotas e Endereçamento Interno
Acesse o shell do contêiner para definir as variáveis de exposição externa.
docker exec -it srv-gitlab /bin/bash
Edite o arquivo de variáveis de ambiente principal:
vi /etc/gitlab/gitlab.rb
Adicione ou substitua as diretivas a seguir, utilizando o IP real da sua infraestrutura:
external_url 'http://172.18.0.15:8443'
gitlab_rails['gitlab_ssh_host'] = '172.18.0.15'
gitlab_rails['gitlab_shell_ssh_port'] = 2022
Recarregue os componentes para aplicar as novas rotas:
gitlab-ctl reconfigure
Nota técnica: Em ambientes Docker, o arquivo gitlab.yml embutido pode não herdar automaticamente a porta externa defindia anteriormente. Para garantir que os clones HTTP gerem a URL coreta com a porta 8443, edite manualmente o manifest da aplicação Rails:
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
Localize o bloco de configuração e ajuste os valores:
gitlab:
host: 172.18.0.15
port: 8443
https: false
Finalize o processo reiniciando o ecossistema de serviços e encerrando a sessão:
gitlab-ctl restart
exit
Validação de Acesso Inicial
Abra um navegador e navegue até http://172.18.0.15:8443. A primeira inicialização demanda considerável alocação de memória; um host com menos de 4 GB de RAM provavelmente retornará erros 502. Na primeira requisição bem-sucedida, a paltaforma exigirá a criação da credencial do administrador padrão.
Redefinição da Credencial Root
Caso a senha padrão seja esquecida ou não registrada durante o setup, utilize o console de administração Rails para alterá-la diretamente na camada de dados.
# Acessar o ambiente isolado
docker exec -it srv-gitlab /bin/bash
# Carregar o interpretador de produção
gitlab-rails console -e production
# Executar as instruções abaixo no prompt do console
admin_user = User.find_by(id: 1)
admin_user.password = 'AdminSecure@2025'
admin_user.password_confirmation = 'AdminSecure@2025'
admin_user.save!
# Sair do interpretador
quit
Após o retorno positivo da operação, utilize a nova credencial para efetuar login e prosseguir com a criação do primeiro repositório remoto.