Despliegue de GitLab con Docker - Guía Completa
1 Instalación de Docker
# Instalar dependencias requeridas
yum install -y yum-utils device-mapper-persistent-data lvm2
# Configurar repositorio oficial
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Instalar Docker Engine
yum install -y docker-ce docker-ce-cli containerd.io
# Habilitar inicio automático
systemctl enable docker.service
# Iniciar servicio Docker
systemctl start docker.service
# Verificar instalación
docker --version
2 Obtener imagen de GitLab
docker pull gitlab/gitlab-ce:14.8.4-ce.0
3 Inicializar contenedor
mkdir -p /srv/gitlab/{config,logs,data}
docker run \
--detach \
--publish 8929:80 \
--publish 2289:22 \
--name servidor-gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:14.8.4-ce.0
'''
Parámetros explicados:
--detach: Ejecutar en segundo plano
--publish 8929:80: Mapear puerto web
--publish 2289:22: Mapear puerto SSH
--volume: Montar directorios persistentes
--restart always: Reinicio automático
--shm-size: Memoria compartida para optimización
'''
4 Configurar GitLab dantro del contenedor
# Acceder al contenedor
docker exec -it servidor-gitlab /bin/bash
# Editar configuración principal
nano /etc/gitlab/gitlab.rb
# Agregar configuraciones
external_url 'http://192.168.1.100:8929'
gitlab_rails['gitlab_ssh_host'] = '192.168.1.100'
gitlab_rails['gitlab_shell_ssh_port'] = 2289
# Aplicar cambios
gitlab-ctl reconfigure
# Editar configuración adicional
nano /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
production: &base
gitlab:
host: 192.168.1.100
port: 8929
https: false
# Reiniciar servicios
gitlab-ctl restart
# Salir del contenedor
exit
5 Aceso inicial via navegador
# Se requiere mínimo 4GB RAM
http://192.168.1.100:8929/
# Primer acceso solicitará contraseña para root
# Establecer y usar para login inicial
6 Recuperación de contraseña root
# Ingresar al contenedor
docker exec -it servidor-gitlab /bin/bash
# Abrir consola Rails
gitlab-rails console -e production
# Localizar usuario administrador
admin_user = User.find_by(username: 'root')
# Establecer nueva contraseña
admin_user.password = 'NuevaPass123!'
admin_user.password_confirmation = 'NuevaPass123!'
admin_user.save!
# Salir
quit
7 Crear primer proyecto
Crear organización Crear repositorio inicial
Operaciones potseriores siguen el flujo estándar de Git