GitLab además de su versión en la nube puede ser instalado en un
servidor o máquina virtual. Pero otra opción muy interesante es la de
desplegarlo en un contenedor.
El docker que vamos a utilizar es el oficial de GitLab y en concreto la versión CE (Community Edition):
https://hub.docker.com/r/gitlab/gitlab-ce/
La documentación oficial la podemos encontrar en:
https://docs.gitlab.com/omnibus/docker/
Verás que trata sobre la versión Enterprise, pero como indican mas abajo, solo tienes que sustituir gitlab-ee por gitlab-ce en todos los comando propuestos.
Para correr el docker de GitLab, tendremos que especificar los siguientes parámetros:
-d --> Para ponerlo en segundo plano (dettach)
-p 443:443 --> Puerto 443 en el docker y el correspondiente en nuestro equipo
-p 80:80
-p 22:22
--name gitlab --> Nombre del docker
--restart always --> reiniciará ante errores
-v /srv/gitlab/config:/etc/gitlab
-v /srv/gitlab/logs:/var/log/gitlab
-v /srv/gitlab/data:/var/opt/gitlab
Para desplegar este docker solo debemos lanzar este comando:
# docker run -d -p 443:443 -p 80:80 -p 22:22 --name gitlab --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce
Es posible que cuando vayamos a acceder a http://localhost obtengamos una respuesta similar a: 502 - Whoops, GitLab is taking too much time to respond. Debemos dejar pasar un rato, hasta que GitLab arranque completamente.
Vamos a ver como cambiar la contraseña de root, son pocos pasos y nos permite repetir la operación siempre que queramos. Lo primero nos conectamos al docker de forma interactiva:
# docker exec -it gitlab bash
Una vez dentro del contenedor, ejecutamos:
# gitlab-rails console -e production
Tendremos que esperar a que vuelva a aparecer el prompt y ejecutamos:
> user = User.where(id: 1).first
> user.password = 'ContraseñaNueva'
> user.password_confirmation = 'ContraseñaNueva'
> user.save
> exit
Salimos de la consola del docker:
# exit
Y ya podemos entrar a http://localhost de nuevo e iniciar sesión con el usuario root y la nueva contraseña que hemos especificado anteriormente. A partir de ahí pura esencia GitLab!!!
DOCKER-COMPOSE
El fichero docker-compose.yml deberá contener:
version: '3.3'
services:
gitlab-ce:
ports:
- '443:443'
- '80:80'
- '22:22'
container_name: gitlab
restart: always
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
image: gitlab/gitlab-ce
SaluDOS