Pre-Receive-Hooks-Umgebung erstellen
Verwenden Sie zum Ausführen von Pre-Receive-Hooks die standardmäßige Pre-Receive-Umgebung, oder erstellen Sie eine benutzerdefinierte Umgebung.
Eine Pre-Receive-Umgebung für GitHub Enterprise Server ist eine Linux-chroot-Umgebung. Da Pre-Receive-Hooks bei jedem Push-Ereignis ausgeführt werden, sollten sie schnell und kompakt sein. Die für solche Überprüfungen benötigte Umgebung ist in der Regel minimal.
GitHub Enterprise Server bietet eine Standardumgebung. Diese enthält die folgenden Pakete: awk
, bash
, coreutils
, curl
, find
, gnupg
, grep
, jq
, sed
.
Wenn eine bestimmte Anforderung vorliegt, die von dieser Umgebung nicht erfüllt wird, beispielsweise die Unterstützung einer bestimmten Sprache, können Sie Ihre eigene 64-Bit-Linux-chroot
-Umgebung erstellen und hochladen.
In diesem Handbuch
- Pre-Receive-Hook-Umgebung mit Docker erstellen
- Pre-Receive-Hook-Umgebung mit chroot erstellen
- Pre-Receive-Hook-Umgebung auf GitHub Enterprise Server hochladen
- Pre-Receive-Hook-Umgebung über die Verwaltungsshell hochladen
Pre-Receive-Hook-Umgebung mit Docker erstellen
Sie können ein Linux-Containerverwaltungstool zum Erstellen einer Pre-Receive-Hook-Umgebung verwenden. In diesem Beispiel werden Alpine Linux und Docker verwendet.
-
Ensure Docker is installed locally.
-
Erstellen Sie die Datei
Dockerfile.alpine-3.3
, welche die folgenden Informationen enthält:
```
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
-
Erstellen Sie einen Container:
$ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
-
Exportieren Sie den Docker-Container in eine
gzip
-komprimierteTAR
-Datei:
$ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz
Diese Datei alpine-3.3.tar.gz
kann auf die Appliance GitHub Enterprise Server hochgeladen werden.
Pre-Receive-Hook-Umgebung mit chroot erstellen
-
Erstellen Sie eine Linux-
chroot
-Umgebung. -
Erstellen Sie eine
gzip
-komprimierteTAR
-Datei des Verzeichnisseschroot
:
$ 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.
Pre-Receive-Hook-Umgebung auf GitHub Enterprise Server hochladen
- In the upper-right corner of any page, click .
- In the left sidebar, click Business.
- Under your business account's name, click Settings.
-
Klicken Sie auf der linken Seitenleiste auf Hooks.
-
Klicken Sie auf Manage environments (Umgebungen verwalten).
-
Klicken Sie auf Add environment (Umgebung hinzufügen).
-
Geben Sie den gewünschten Namen in das Feld Environment name (Name der Umgebung) ein.
-
Geben Sie die URL der
*.tar.gz
-Datei ein, in der Ihre Umgebung enthalten ist. -
Klicken Sie auf Add environment (Umgebung hinzufügen).
Pre-Receive-Hook-Umgebung über die Verwaltungsshell hochladen
-
Laden Sie eine lesbare
*.tar.gz
-Datei, die Ihre Umgebung enthält, auf einen Webhost hoch, und kopieren Sie die URL, oder übertragen Sie die Datei überscp
an die GitHub Enterprise Server-Appliance. Wenn Siescp
verwenden, müssen Sie die*.tar.gz
-Dateiberechtigungen ggf. anpassen, damit die Datei allgemein lesbar ist. -
Stellen Sie eine Verbindung zur Verwaltungsshell her.
-
Führen Sie den Befehl
ghe-hook-env-create
aus, und geben Sie den gewünschten Namen für die Umgebung als das erste Argument und den vollständigen lokalen Pfad oder die URL einer*.tar.gz
-Datei, die Ihre Umgebung enthält, als das zweite Argument ein.
admin@ghe-host:~$ ghe-hook-env-create AlpineTestEnv /home/admin/alpine-3.3.tar.gz
> Pre-receive hook environment 'AlpineTestEnv' (2) has been created.