我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们
文章版本: Enterprise Server 2.15

此版本的 GitHub Enterprise 将停止服务 此版本的 GitHub Enterprise 已停止服务 2019-10-16. 即使针对重大安全问题,也不会发布补丁。 For better performance, improved security, and new features, upgrade to the latest version of GitHub Enterprise. For help with the upgrade, contact GitHub Enterprise support.

创建预接收挂钩环境

要执行预接收挂钩,请使用默认的预接收环境,或者创建自定义环境。

GitHub Enterprise Server 的预接收环境是 Linux chroot 环境。 由于预接收挂钩会在每个推送事件上执行,因此它们应该快速且轻量化。 这类检查需要的环境通常极少。

GitHub Enterprise Server 提供了一个默认环境,其中包括以下包:awkbashcoreutilscurlfindgnupggrepjqsed

如果您具有此环境未满足的特定要求(例如对特定语言的支持),则可以创建并上传您自己的 64 位 Linux chroot 环境。

本文内容

使用 Docker 创建预接收挂钩环境

您可以使用 Linux 容器管理工具来构建预接收挂钩环境。 此示例使用 Alpine LinuxDocker

  1. 确保本地安装了 Docker

  2. 创建包含此信息的文件 Dockerfile.alpine-3.3

    FROM gliderlabs/alpine:3.3
    RUN apk add --no-cache git bash
  3. 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
  4. 创建一个容器:

    $ docker create --name pre-receive.alpine-3.3 pre-receive.alpine-3.3 /bin/true
  5. 将 Docker 容器导出到 gzip 压缩的 tar 文件:

    $ docker export pre-receive.alpine-3.3 | gzip > alpine-3.3.tar.gz

    此文件 alpine-3.3.tar.gz 已准备好上传到 GitHub Enterprise Server 设备。

使用 chroot 创建预接收挂钩环境

  1. 创建 Linux chroot 环境。

  2. 创建 chroot 目录的 gzip 压缩 tar 文件:

    $ 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.

在 GitHub Enterprise Server 上上传预接收挂钩环境

  1. In the upper-right corner of any page, click .

    用于访问站点管理员设置的火箭图标

  2. In the left sidebar, click Business.

    Business tab in the Site admin settings

  3. Under your business account's name, click Settings.

    Settings tab on the business account profile page

  4. 在左侧侧边栏中,单击 Hooks

    Hooks tab in the business account settings sidebar

  5. 单击 Manage environments

    管理环境

  6. 单击 Add environment

    添加环境

  7. Environment name 字段中输入所需的名称。

    环境名称

  8. 输入包含您的环境的 * .tar.gz 文件的 URL。

    从 URL 上传环境

  9. 单击 Add environment

    Add environment 按钮

通过管理 shell 上传预接收挂钩环境

  1. 将包含您的环境的可读 * .tar.gz 文件上传到 web 主机并复制 URL 或通过 scp 将文件传送到 GitHub Enterprise Server 设备。 使用 scp 时,您可能需要调整 * .tar.gz 文件权限,以使该文件全局可读。

  2. 连接到管理 shell。

  3. 使用 ghe-hook-env-create 命令并输入所需的环境名称作为第一个参数,然后将包含环境的 * .tar.gz 文件的完整本地路径或 URL 作为第二个参数。

    admin@ghe-host:~$ ghe-hook-env-create AlpineTestEnv /home/admin/alpine-3.3.tar.gz
    > Pre-receive hook environment 'AlpineTestEnv' (2) has been created.

问问别人

找不到要找的内容?

联系我们