Si no sabe qué es un registro de contenedores, no se preocupe. Se aclarará una vez que empuje su primera imagen de contenedor en una instancia de Gitlab. Por ahora, piense en ellos como repositorios para las imágenes de su contenedor. Estos no están ejecutando contenedores sino solo imágenes (datos simples) sentados en la instancia remota de Gitlab.
¿Por qué querrías un registro de contenedores Gitlab??
Lo más probable es que su aplicación esté empaquetada como una sola imagen de Docker o una colección de tales imágenes. Esto significa que 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 deben agruparse en una liberación particular.
El registro es para contenedores, qué repositorio es para el código fuente y gitlab es un lugar para manejarlos todos.
Requisitos previos
Vamos a asumir que nuestro gitlab se está ejecutando gitlab.ejemplo.comunicarse .
Registro de certificados DNS y TLS
Debe ser el usuario raíz para habilitar la función de registro de contenedores en la instancia de gitlab. Los usuarios individuales pueden optar por usar esta función en sus respectivos proyectos, si lo desean. Hay dos formas de hacerlo:
Vamos con la segunda opción, ya que es mucho más profesional.
Paso 1: Agregar un registro A para registro.gitlab.ejemplo.comunicarse señalando 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 PPA a su sistema e instalar CERTBOT.
$ sudo add-apt-repository PPA: certbot/certbot
$ sudo apt actualización
$ sudo apt instalación certbot
Etapa 4: Obtenga certificados de Let's Cifrar.
$ certbot certonly
Verá un mensaje como:
"'
¿Cómo le gustaría autenticarse con el acme ca?
--
1: gire un servidor web temporal (independiente)
2: Coloque los archivos en el directorio de Webroot (Webroot)
--
Seleccione el número apropiado [1-2] y luego [Enter] (presione 'C' para cancelar): 1
"'
Esto le pedirá su correo electrónico, le pedirá que acepte sus Términos de servicio y, lo más importante, le solicitará su nombre de dominio que sea registro.gitlab.ejemplo.comunicarse En nuestro caso de ejemplo. Recibirá un mensaje que dice si se obtuvieron o no los certificados. Si lo fueran, pasa al paso 5
Paso 5: Ahora que tenemos nuestros certs, es hora de colocarlos en directorios relacionados con Gitlab.
$ cp/etc/letsencrypt/live/registro.gitlab.ejemplo.com/fullchain.pem
/etc/gitlab/ssl/registro.gitlab.ejemplo.CRT
$ cp/etc/letsencrypt/live/registro.gitlab.ejemplo.com/privkey.pem
/etc/gitlab/ssl/registro.gitlab.ejemplo.llave
Asegure los permisos:
$ chmod 600/etc/gitlab/ssl/registro.gitlab.ejemplo.comunicarse.*
Al igual que el resto del tutorial, asegúrese de reemplazar el ejemplo.com con su nombre de dominio existente. Dado que ese es el nombre del directorio, donde CertBot ha almacenado el certificado.
Paso 6: Editar configuración de gitlab. Abra el archivo /etc/gitlab/gitlab.RB y agregue las siguientes líneas al fondo:
Registry_external_url 'https: // Registro.gitlab.ejemplo.com '
Si ha hecho todo cuidadosamente, la parte más complicada de la configuración ha terminado! Ahora tendrá un registro de contenedores en funcionamiento, simplemente ejecute:
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl inicio
Habilitar el registro y empujar imágenes
Ahora que tenemos a nosotros mismos un registro de contenedores, creemos un nuevo proyecto utilizando la interfaz de usuario web de GitLab y verifiquemos que funcione.
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 y presionar imágenes en él. Volvamos a nuestro escritorio local, que debería tener Docker instalado en él.
Podemos usarlo para construir un contenedor simple de Hello-World y llevarlo a este registro. En su sistema local, cree una nueva carpeta:
$ CD ~
$ mkdir sample_container
Dentro de él creamos un archivo llamado Dockfile y agréguelo los siguientes contenidos:
De Ubuntu: Último
## Tus comandos personalizados aquí
Puedes mantener tu Dockerfile con solo la primera línea. Será un contenedor Ubuntu simple. Ahora lo construyes con una etiqueta significativa (usaremos la etiqueta mi proyecto que es lo mismo que el nombre de nuestro proyecto GitLab, esto es importante). En la misma ejecución del directorio:
$ Docker Build -t Registry.gitlab.ejemplo.com//mi proyecto .
Recuerde sustituir su nombre de usuario GitLab en lugar del marcador de posición utilizado en el comando anterior.
Simplemente crea un contenedor ubuntu junto con la búsqueda de la imagen. Esta imagen es lo que se empuja. Si modifica el contenedor y crea una nueva imagen con él (usando Docker Commit comandar será una nueva imagen). Empujamos la imagen de vainilla ubuntu a nuestro registro.
Primero necesitamos iniciar sesión usando nuestro nombre de usuario y contraseña de GitLab:
$ Docker Registro de inicio de sesión.gitlab.ejemplo.comunicarse
Entonces corre:
$ Docker Build -t Registry.gitlab.ejemplo.com/root/my-project .
$ Docker Push Registry.gitlab.ejemplo.com/root/my-project
Si no está seguro de cuál debe 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 una nueva imagen de Docker se carga (o empuje) en su instancia de Gitlab. Como si se mostrara en mi caso:
El control de versiones es mucho más que solo la administración del código fuente. Se mejora constantemente para acomodar una variedad versátil de demandas de que cualquier proyecto de software pueda necesitar inesperadamente. El registro de contenedores es solo la punta del iceberg. Puede tener tuberías 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 quiere que cubramos!