GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar GitLab con Docker en Ubuntu 20.04 LTS

GitLab es un administrador de repositorios de código abierto basado en Rails desarrollado por GitLab Inc. Es un administrador de repositorios git basado en la web que le permite a su equipo colaborar en la codificación, prueba e implementación de aplicaciones. GitLab ofrece varias funciones, que incluyen wikis, seguimiento de problemas, revisiones de código y fuentes de actividad.

En este tutorial, le mostraremos cómo instalar GitLab usando Docker y Docker Compose. Además, usaremos Ubuntu 20.04 como nuestro sistema operativo principal e instalaremos Docker desde el repositorio oficial de Ubuntu FocalFossa.

Requisitos previos

  • Servidor Ubuntu 20.04
  • Mínimo 4 GB de RAM
  • Privilegios de raíz

¿Qué haremos?

  • Instalar Docker y Docker Compose
  • Configurar el proyecto GitLab Docker
  • Crear un contenedor de GitLab
  • Instalación posterior de GitLab

Paso 1:instalar Docker y Docker Compose

Primero, instalaremos los paquetes docker y docker-compose en nuestro sistema Ubuntu 20.04. Y usaremos los paquetes docker proporcionados por el repositorio oficial de Ubuntu FocalFossa.

Actualice todos los repositorios a la última versión e instale docker y docker-compose usando el comando apt a continuación.

sudo apt update
sudo apt install docker.io containerd docker-compose

Una vez completada toda la instalación, inicie el servicio docker y agréguelo al inicio del sistema.

systemctl start docker
systemctl enable docker

A continuación, verifique el servicio docker usando el comando systemctl a continuación.

systemctl status docker

Como resultado, el servicio docker está funcionando en Ubuntu 20.04 Server.

Para verificar la instalación de docker, ejecute el comando docker "hello-world" a continuación.

docker run hello-world

Ahora recibirá el mensaje "hola mundo" de la ventana acoplable como se muestra a continuación.

Ahora estamos listos para instalar GitLab usando docker container y docker-compose.

Paso 2:configurar el directorio de GitLab

En este paso, configuraremos nuestro directorio de proyectos para la instalación de GitLab.

Cree un nuevo directorio llamado 'gitlab' y acceda a él.

mkdir -p gitlab; cd gitlab/

El directorio "gitlab" se usará para almacenar todas las secuencias de comandos y la configuración de Docker para GitLab.

Crea un directorio de datos de GitLab y un archivo .env

En esta sección, crearemos un nuevo directorio para almacenar todos nuestros datos de GitLab y crearemos un nuevo archivo ".env" que será utilizado por docker.

Cree un nuevo directorio de datos de GitLab "/srv/gitlab" usando el comando mkdir a continuación.

mkdir -p /srv/gitlab/{config/ssl,logs,data}

Luego, en el directorio del proyecto "gitlab", cree un nuevo archivo ".env" usando el editor vim.

vim .env

Defina la variable de entorno "GITLAB_HOME" con el valor como directorio de datos de GitLab "/srv/gitlab" como se muestra a continuación.

GITLAB_HOME=/srv/gitlab

Guardar y cerrar.

El script docker-compose.yml utilizará la variable de entorno para los volúmenes de Gitlab.

Crear secuencia de comandos docker-compose.yml

A continuación, crearemos un nuevo "docker-compose.yml" que se usará para construir nuestro contenedor GitLab.

Cree el nuevo archivo 'docker-compose.yml' con el siguiente comando vim.

vim docker-compose.yml

Defina el servicio llamado "web" con la imagen de la última versión de "gitlab-ce" y cambie el "nombre de host" con su nombre de dominio de GitLab.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

Configure el entorno para su instalación de Gitlab como se muestra a continuación. Y asegúrese de cambiar "external_url" con el protocolo seguro HTTPS y cambie "gitlab_rails['gitlab_shell_ssh_port']" con su puerto SSH alternativo para el contenedor.

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"

A continuación, defina los puertos para el contenedor de GitLab como se muestra a continuación. Y asegúrese de cambiar el puerto SSH "2224" con su puerto personalizado y hacerlo coincidir con el puerto "gitlab_shell_ssh_port" en la parte superior.

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

Después de eso, defina el volumen o sus directorios de datos de GitLab. Todos los directorios de datos de GitLab están disponibles en el directorio "GITLAB_HOME", que se establece como variable de entorno en el archivo ".env" en la parte superior.

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

Guardar y cerrar.

A continuación se muestra la configuración completa.

web:
  image: 'gitlab/gitlab-ce:latest'
  restart: always
  hostname: 'gitlab.hakase-labs.io'

  environment:
    GITLAB_OMNIBUS_CONFIG: |
      # Add any other gitlab.rb configuration here, each on its own line
      external_url 'https://gitlab.hakase-labs.io'
      gitlab_rails['gitlab_shell_ssh_port'] = 2224
      nginx['redirect_http_to_https'] = true
      nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem"
      nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/privkey.pem"
      nginx['ssl_dhparam'] = "/etc/gitlab/ssl/dhparams.pem"  

  ports:
    - '80:80'
    - '443:443'
    - '2224:22'

  volumes:
    - '${GITLAB_HOME}/config:/etc/gitlab'
    - '${GITLAB_HOME}/logs:/var/log/gitlab'
    - '${GITLAB_HOME}/data:/var/opt/gitlab'
    - '${GITLAB_HOME}/config/ssl:/etc/gitlab/ssl'

Como resultado, se ha creado el script "docker-compose.yml" para la instalación del proyecto GitLab.

Generar certificados SSL y DHAPARAM

En esta etapa, generaremos el SSL Letsencrypt para nuestra instalación de GitLab.

En su servidor, instale la herramienta certbot usando el comando apt a continuación.

sudo apt install certbot

Después de eso, genere el certificado SSL para GitLab usando el comando certbot a continuación.

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d gitlab.hakase-labs.io

Una vez que todo esté completo, sus certificados estarán disponibles en el directorio '/etc/letsencrypt/live/gitlab.yourdomain'.

Ahora copie el archivo de certificado "fullchain.pem" y "privkey.pem" en el directorio "/srv/gitlab/config/ssl/".

cp /etc/letsencrypt/live/gitlab.hakase-labs.io/fullchain.pem /srv/gitlab/config/ssl/
cp /etc/letsencrypt/live/gitlab.hakase-labs.io/privkey.pem /srv/gitlab/config/ssl/

Y el SSL Letsencrypt para GitLab está listo.

A continuación, genere el certificado DHPARAM "dhparam.pem" mediante el siguiente comando openssl.

sudo openssl dhparam -out /srv/gitlab/config/ssl/dhparams.pem 2048

Y todos los certificados para la instalación de GitLab se han generado y estamos listos para construir el contenedor de GitLab.

Paso 3:crea el contenedor de GitLab

En este paso, construiremos nuestro contenedor GitLab usando toda la configuración que hemos creado en la parte superior y usando el comando docker-compose.

Antes de continuar, puede comprobar todos los archivos disponibles en el directorio del proyecto "gitlab" y la estructura de directorios del directorio de datos de GitLab.

ls -lah ~/gitlab/
tree /srv/gitlab

A continuación se muestra el resultado que obtendrá.

Luego, vaya al directorio del proyecto "~/gitlab" y cree el contenedor de GitLab usando el comando "docker-compose" a continuación.

cd ~/gitlab
docker-compose up -d

Una vez que todo esté completo, obtendrá el resultado que se muestra a continuación.

Ahora verifique el contenedor en ejecución y los puertos "LISTEN" en su sistema Ubuntu usando el siguiente comando.

docker-compose ps
ss -plnt

Y obtendrá el contenedor "gitlab_web_1 " está en funcionamiento y tiene el puerto HTTP, HTTPS y SSH "2224" utilizado por el contenedor de GitLab.

Como se puede ver, el contenedor de GitLab está funcionando y estamos listos para configurar nuestra instalación de GitLab.

Paso 4:instalación posterior de GitLab

Abra su navegador web y escriba su URL de instalación de GitLab en la barra de direcciones.

https://gitlab.hakase-labs.io/

Y obtendrá la página de restablecimiento de contraseña de GitLab.

Escriba su nueva contraseña para el usuario predeterminado "root" y haga clic en el botón "Cambiar su contraseña".

Ahora obtendrá la página de inicio de sesión de GitLab como se muestra a continuación.

Inicie sesión con el usuario predeterminado "root " y su nueva contraseña, luego haga clic en "Iniciar sesión".

Y obtendrá el Panel de GitLab como se muestra a continuación.

Como puede verse, la instalación de GitLab usando docker y docker-compose se ha completado.

Paso 5:Configuración básica del contenedor GitLab

Después de la instalación de GitLab, puede agregar alguna configuración adicional al contenedor de GitLab sin destruir el contenedor de GitLab. Para este paso, le mostraremos la forma básica de administrar el contenedor de GitLab.

Antes de continuar, vaya al directorio del proyecto "~/gitlab" y verifique el estado del contenedor con el siguiente comando.

cd ~/gitlab
docker-compose ps

Obtendrá el contenedor de GitLab en funcionamiento.

Comprobar el estado del servicio de GitLab dentro del contenedor

Para verificar todos los servicios de GitLab dentro del contenedor de Gitlab, use el comando "docker exec" como se muestra a continuación.

sudo docker exec -it gitlab_web_1 gitlab-ctl status

A continuación se muestra el resultado que obtendrá.

Como puede verse, todos los componentes del servicio de GitLab están en funcionamiento.

Acceder al contenedor de GitLab

Para usar SSH en el contenedor de GitLab, use "docker exec" con el shell "bash" dentro del contenedor como se muestra a continuación.

sudo docker exec -it gitlab_web_1 /bin/bash

Ahora verifique la versión predeterminada de Ubuntu del contenedor de GitLab.

cat /etc/lsb-release

Obtendrá el contenedor de GitLab basado en Ubuntu 16.04 Xenial.

Ahora escribe "salir " para cerrar sesión en el contenedor de GitLab.

Editar la configuración de GitLab gitlab.rb

A continuación, para cambiar la configuración de GitLab dentro del contenedor, puede usar el "editor" predeterminado en el propio contenedor acoplable.

Edite la configuración "/etc/gitlab/gitlab.rb" dentro del contenedor usando el comando docker a continuación.

sudo docker exec -it gitlab_web_1 editor /etc/gitlab/gitlab.rb

Ahora obtendrá el editor "nano" predeterminado en la pantalla, con el archivo de configuración "gitlab.rb".

Escriba su configuración, guarde y salga.

Luego, para aplicar los nuevos cambios a GitLab, reinicie el servicio de contenedor de Gitlab usando el siguiente comando.

sudo docker restart gitlab_web_1

Ahora asegúrese de que no haya ningún error, verifique el estado del contenedor de GitLab usando el siguiente comando.

sudo docker-compose ps

Ahora asegúrese de que el cotainer de GitLab esté en "Arriba (saludable) " estado.

Como resultado, se aplicó la nueva configuración para GitLab.

Y finalmente, la instalación de GitLab utilizando Docker y Docker-compose se completó con éxito.


Ubuntu
  1. Cómo instalar Docker en Ubuntu 22.04

  2. Cómo instalar Docker en Ubuntu 22.04/20.04 LTS

  3. Cómo instalar ONLYOFFICE 8.9.0 con Docker en Ubuntu

  4. Cómo instalar el servidor Gitlab con Docker en Ubuntu 18.04 LTS

  5. Cómo instalar Docker en Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

Cómo instalar WordPress con Docker en Ubuntu 16.04 LTS

Cómo instalar Rancher en Ubuntu 16.04 LTS

Cómo instalar Docker en Ubuntu 18.04 LTS

Cómo instalar Gitlab en Ubuntu 18.04 LTS

Cómo instalar Docker en Ubuntu 20.04 LTS

Cómo instalar Kitematic en Ubuntu 20.04 LTS