Un entorno previo a la recepción para GitHub Enterprise Server es un entorno chroot
de Linux. Dado que los ganchos de pre-recepción se ejecutan en todos los eventos de extracción, deberían ser rápidos y livianos. Normalmente, el entorno necesario para tales verificaciones será mínimo.
GitHub Enterprise Server proporciona un entorno predeterminado que incluye estos paquetes: awk
, bash
, coreutils
, curl
, find
, gnupg
, grep
, jq
y sed
.
Si su entorno no cumple con uno de los requisitos específicos, como compatibilidad con un idioma determinado, puede crear y cargar su propio entorno chroot
en Linux de 64� bits.
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. En este ejemplo se usa Alpine Linux y Docker.
-
Asegúrese de que Docker está instalado localmente.
-
Cree el archivo
Dockerfile.alpine-3.3
que contiene esta información:FROM gliderlabs/alpine:3.3 RUN apk add --no-cache git bash
-
Desde el directorio de trabajo que contiene
Dockerfile.alpine-3.3
, compile una imagen:$ 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
-
Exporte el contenedor Docker a un archivo
tar
comprimido engzip
:$ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz
Este archivo
alpine-3.3.tar.gz
está listo para cargarse al dispositivo GitHub Enterprise Server.
Crear un entorno de gancho de pre-recepción mediante chroot
-
Cree un entorno
chroot
de Linux. -
Cree un archivo
tar
comprimido engzip
del directoriochroot
.$ cd /path/to/chroot $ tar -czf /path/to/pre-receive-environment.tar.gz .
Notas:
- No incluya las rutas de acceso iniciales del directorio de los archivos en el archivo tar, tales como
/path/to/chroot
. /bin/sh
debe existir y ser ejecutable como punto de entrada al entorno chroot.- A diferencia de los chroots tradicionales, el entorno de chroot para enlaces previos a la recepción no requiere el directorio
dev
.
- No incluya las rutas de acceso iniciales del directorio de los archivos en el archivo tar, tales como
Para obtener más información sobre cómo crear un entorno chroot, vea "Chroot" en la Wiki de Debian, "BasicChroot" de Community Help Wiki de Ubuntu o "Instalar Alpine Linux en un entorno chroot" en la Wiki de Alpine Linux.
Cargar un entorno de pre-recepción en GitHub Enterprise Server
- En la esquina superior derecha de GitHub Enterprise Server, haga clic en la foto de perfil y luego en Configuración de empresa. 1. En la barra lateral de la cuenta de empresa, haga clic en Configuración. 1. En " Settings", haga clic en Enlaces.
- Haga clic en Manage environments (Administrar entornos).
- Haga clic en Add environment (Agregar entorno).
- Escriba el nombre deseado en el campo Environment name (Nombre del entorno).
- Escriba la dirección URL del archivo
*.tar.gz
que contiene el entorno. - Haga clic en Add environment (Agregar entorno).
Cargar un entorno de pre-recepción mediante el shell administrativo
-
Cargue un archivo
*.tar.gz
legible que contenga su entorno a un host web y copie la URL o transfiera el archivo al dispositivo GitHub Enterprise Server mediantescp
. Al usarscp
, es posible que tenga que ajustar los permisos del archivo*.tar.gz
para que sea legible en todo el mundo. -
Conecta con el shell administrativo.
-
Usa el comando
ghe-hook-env-create
y escriba el nombre que quiera para el entorno como primer argumento, y la ruta de acceso local completa o la dirección URL de un archivo*.tar.gz
que contenga su 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.