Crear un entorno de gancho de pre-recepción
Para ejecutar los ganchos de pre-recepción, usa el entorno de pre-recepción predeterminado o crea un entorno personalizado.
Un entorno de pre-recepción para Servidor de GitHub Enterprise es un entorno Linux chroot
. Dado que los ganchos de pre-recepción ejecutan cada evento de extracción, deberían ser rápidos y livianos. El entorno necesario para tales verificaciones habitualmente será mínimo.
Servidor de GitHub Enterprise brinda un entorno predeterminado que incluye estos paquetes: awk
, bash
, coreutils
, curl
, find
, gnupg
, grep
, jq
, sed
.
Si tu entorno no cumple con uno de los requisitos específicos, como respaldo para un idioma en particular, puedes crear y cargar tu propio entorno chroot
en Linux de 64 bits.
En esta guía
- Crear un entorno de gancho de pre-recepción mediante Docker
- Crear un entorno de gancho de pre-recepción mediante chroot
- Cargar un entorno de pre-recepción en Servidor de GitHub Enterprise
- Cargar un entorno de pre-recepción mediante el shell administrativo
Crear un entorno de gancho de pre-recepción mediante Docker
Puedes usar una herramienta de administración de contenedores de Linux para crear un entorno de gancho de pre-recepción. Este ejemplo usa Alpine Linux y Docker.
-
[Verifica que Docker esté instalado] (https://www.docker.com/) de manera local.
-
Crea el archivo
Dockerfile.alpine-3.3
que contiene esta información:FROM gliderlabs/alpine:3.3 RUN apk add --no-cache git bash
-
From the working directory that contains
Dockerfile.alpine-3.3
, build an image:$ docker build -f Dockerfile.alpine-3.3 -t pre-receive.alpine-3.3 . > Sending build context to Docker daemon 12.29 kB > Step 1 : FROM gliderlabs/alpine:3.3 > ---> 8944964f99f4 > Step 2 : RUN apk add --no-cache git bash > ---> Using cache > ---> 0250ab3be9c5 > Successfully built 0250ab3be9c5
-
Crea un contenedor:
$ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
-
Exporta el contenedor Docker a un archivo
tar
comprimido comogzip
:$ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz
Este archivo
alpine-3.3.tar.gz
está listo para subirse al aparato Servidor de GitHub Enterprise.
Crear un entorno de gancho de pre-recepción mediante chroot
-
Crea un entorno
chroot
en Linux. -
Crea un archivo
tar
comprimido comogzip
del directoriochroot
:$ tar -czf pre-receive-environment.tar.gz /path/to/chroot
For more information about creating a chroot environment see "Chroot" from the Debian Wiki, "BasicChroot" from the Ubuntu Community Help Wiki, or "Installing Alpine Linux in a chroot" from the Alpine Linux Wiki.
Cargar un entorno de pre-recepción en Servidor de GitHub Enterprise
-
In the upper-right corner of any page, click .
-
In the left sidebar, click Business.
-
Under your business account's name, click Settings.
-
En la barra lateral izquierda, haz clic en Hooks (Ganchos).
-
Haz clic en Manage environments (Administrar entornos).
-
Haz clic en Add environment (Agregar entorno).
-
Escribe el nombre que desees en el campo Environment name (Nombre del entorno).
-
Escribe la URL del archivo
*.tar.gz
que contiene tu entorno. -
Haz clic en Add environment (Agregar entorno).
Cargar un entorno de pre-recepción mediante el shell administrativo
-
Carga un archivo
*.tar.gz
legible que contenga tu entorno a un host web y copia la URL o transfiere el archivo al aparato Servidor de GitHub Enterprise mediantescp
. Al usarscp
, es posible que necesites ajustar los permisos del archivo*.tar.gz
para que todos puedan leerlo. -
Conecta con el shell administrativo.
-
Usa el comando
ghe-hook-env-create
y escribe el nombre que desees para el entorno como primer argumento y la ruta local completa o la dirección URL de un archivo*.tar.gz
que contenga tu entorno como segundo argumento.admin@ghe-host:~$ ghe-hook-env-create AlpineTestEnv /home/admin/alpine-3.3.tar.gz > Pre-receive hook environment 'AlpineTestEnv' (2) has been created.