Implantação de Servidor GitLab CE via Containers Docker

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.

Tags: docker-ce gitlab-self-hosted container-volumes rails-console centos-linux

Publicado em 8-13 14:10