Git

Configuración de GitLab Container Registry

Configuración de GitLab Container Registry
En nuestra última publicación, le mostramos cómo puede configurar una instancia de GitLab para administrar los proyectos personales o de su organización. Le recomendamos que utilice un FQDN y tenga la instancia de GitLab disponible a través de HTTPS. Dado que la mayoría de las aplicaciones están empaquetadas como contenedores, es razonable configurar un registro de contenedores donde las diferentes versiones de su aplicación, así como sus diferentes componentes, se puedan almacenar como imágenes de Docker.

Si no sabe qué es un registro de contenedores, no se preocupe. Se volverá claro una vez que realmente inserte su primera imagen de contenedor en una instancia de GitLab. Por ahora, considérelos como repositorios para las imágenes de su contenedor. Estos no son contenedores en ejecución, sino solo imágenes (datos sin formato) que se encuentran en la instancia remota de GitLab.

¿Por qué querrías un registro de contenedores de GitLab??

Lo más probable es que su aplicación esté empaquetada como una sola imagen de Docker o como una colección de dichas imágenes. Esto significa que las diferentes versiones se asociarán con diferentes imágenes y el registro de contenedores lo ayudará a realizar un seguimiento de ellas individualmente, así como a ver cuáles se agruparán en una versión en particular.

El registro es para contenedores, lo que el repositorio es para el código fuente y GitLab es un lugar para manejarlos todos.

Prerrequisitos

  1. Una instancia de GitLab en funcionamiento a través de HTTPS
  2. Acceso root a la instancia
  3. Acceso para modificar los registros DNS de su nombre de dominio

Vamos a asumir que nuestro GitLab se está ejecutando gitlab.ejemplo.com .

Certificados de registro DNS y TLS

Debe ser el usuario root para habilitar la función de registro de contenedores en la instancia de GitLab. Los usuarios individuales pueden optar por utilizar esta función en sus respectivos proyectos, si así lo desean. Hay dos formas de hacerlo:

  1. Reutilice el nombre de dominio existente y los certificados TLS para gitlab.ejemplo.com y ejecutar el registro en un puerto diferente.
  2. Señale otro nombre de dominio, digamos, registro.gitlab.ejemplo.com a la misma dirección IP donde se ejecuta GitLab y configure el registro allí.

Vayamos con la segunda opción ya que es mucho más profesional.

Paso 1: Agregar un registro A para registro.gitlab.ejemplo.com apuntando a la misma IP donde se ejecuta su instancia de GitLab.

Paso 2: Detenga los servicios de gitlab que se ejecutan en su servidor.

$ sudo gitlab-ctl stop

Paso 3: Agregar cliente ACME certbot's PPA en su sistema e instale certbot.

$ sudo add-apt-repository ppa: certbot / certbot
actualización de $ sudo apt
$ sudo apt install certbot

Paso 4: Obtenga certificados de Let's Encrypt.

$ certbot certonly

Verás un mensaje como:
"'
¿Cómo le gustaría autenticarse con ACME CA??
--
1: Ponga en marcha un servidor web temporal (independiente)
2: Coloque los archivos en el directorio webroot (webroot)
--
Seleccione el número apropiado [1-2] luego [ingresar] (presione 'c' para cancelar): 1
"'

Esto luego le pedirá su correo electrónico, le pedirá que acepte sus términos de servicio y, lo más importante, le pedirá su nombre de dominio, que sería registro.gitlab.ejemplo.com en nuestro caso de ejemplo. Recibirá un mensaje que le indicará si se obtuvieron o no los certificados. Si lo fueran, continúe con el Paso 5

Paso 5: Ahora que tenemos nuestros certificados, es hora de colocarlos en directorios relacionados con GitLab.

$ cp / etc / letsencrypt / live / registro.gitlab.ejemplo.com / fullchain.pem
/ etc / gitlab / ssl / registry.gitlab.ejemplo.crt
$ cp / etc / letsencrypt / live / registro.gitlab.ejemplo.com / privkey.pem
/ etc / gitlab / ssl / registry.gitlab.ejemplo.clave

Asegure los permisos sobre ellos:

$ chmod 600 / etc / gitlab / ssl / registry.gitlab.ejemplo.com.*

Como el resto del tutorial, asegúrese de reemplazar example.com con su nombre de dominio existente. Dado que ese es el nombre del directorio, donde certbot ha almacenado el certificado.

Paso 6: Editar la configuración de GitLab. Abre el archivo / etc / gitlab / gitlab.rb y agregue las siguientes líneas al final:

registration_external_url 'https: // registro.gitlab.ejemplo.com '

Si ha hecho todo con cuidado, la parte más complicada de la configuración ha terminado! Ahora tendrá un registro de contenedores en funcionamiento, solo ejecute:

$ sudo gitlab-ctl reconfigurar
$ sudo gitlab-ctl start

Habilitación del registro y envío de imágenes

Ahora que tenemos un Container Registry para nosotros mismos, creemos un nuevo proyecto usando la interfaz de usuario web de GitLab y verifiquemos que funciona.

En la columna de la izquierda puede ver una sección de Registro.  Puede hacer clic en él para ver instrucciones detalladas sobre cómo iniciar sesión e insertar imágenes en él. Volvamos a nuestro escritorio local, que debería tener Docker instalado.

Podemos usarlo para construir un contenedor simple de hello-world y enviarlo a este registro. En su sistema local, cree una nueva carpeta:

$ cd ~
$ mkdir sample_container

Dentro de él, creemos un archivo llamado Dockerfile y agregue el siguiente contenido:

DESDE ubuntu: último
## Tus comandos personalizados aquí

Puede mantener su Dockerfile con solo la primera línea. Será un contenedor ubuntu simple. Ahora lo compila con una etiqueta significativa (usaremos la etiqueta mi proyecto que es el mismo que el nombre de nuestro proyecto GitLab, esto es importante). En el mismo directorio ejecute:

$ docker build -t registro.gitlab.ejemplo.com //mi proyecto .

Recuerde sustituir su nombre de usuario de GitLab en lugar del marcador de posición utilizado en el comando anterior.

Simplemente crea un contenedor de Ubuntu junto con la obtención de la imagen. Esta imagen es lo que se empuja. Si modifica el contenedor y crea una nueva imagen con él (usando Docker commit comando será una nueva imagen). Empujemos la imagen vanilla de ubuntu a nuestro registro.

Primero debemos iniciar sesión con nuestro nombre de usuario y contraseña de Gitlab:

$ registro de inicio de sesión de docker.gitlab.ejemplo.com

Entonces corre:

$ docker build -t registro.gitlab.ejemplo.com / root / my-project .
$ docker push registro.gitlab.ejemplo.com / root / my-project

Si no está seguro de cuál debería ser la etiqueta de su contenedor, visite la página de registro de su proyecto y habrá instrucciones claras para ello. Si el comando docker push ha funcionado correctamente, puede ver que se carga (o empuja) una nueva imagen de la ventana acoplable en su instancia de GitLab. Como se mostró en mi caso:

Conclusión

El control de versiones es mucho más que la simple administración del código fuente. Mejora constantemente para adaptarse a una variedad versátil de demandas que cualquier proyecto de software puede necesitar inesperadamente. El registro de contenedores es solo la punta del iceberg. Puede tener canalizaciones de CD / CI, gestión de configuración avanzada, autorización a través de tokens y una multitud de otras funcionalidades habilitadas en GitLab. Espero que hayas aprendido algo nuevo sobre esta maravillosa tecnología en este tutorial.

Háganos saber si hay algo que quiera que cubramos!

Cómo instalar League Of Legends en Ubuntu 14.04
Si eres fanático de League of Legends, esta es una oportunidad para que pruebes League of Legends. Tenga en cuenta que LOL es compatible con PlayOnLin...
Instale el último juego de estrategia de OpenRA en Ubuntu Linux
OpenRA es un motor de juego de estrategia en tiempo real libre / gratuito que recrea los primeros juegos de Westwood como el clásico Command & Conquer...
Instale el último emulador de Dolphin para Gamecube y Wii en Linux
Dolphin Emulator te permite jugar los juegos de Gamecube y Wii que elijas en computadoras personales con Linux (PC). Al ser un emulador de juegos de ...