Skip to main content

为 GitHub Packages 配置 MinIO 存储桶的快速入门

配置您的自定义 MinIO 存储桶,用于 GitHub Packages。

在 your GitHub Enterprise Server instance 上启用和配置 GitHub Packages 之前,您必须准备第三方存储解决方案。

MinIO 在企业上提供对象存储并支持 S3 API 和 GitHub Packages。

此快速入门将演示如何使用 Docker 设置 MinIO 以与 GitHub Packages 使用,但除了 Docker 之外,您还有其他用于管理 MinIO 的选项。 有关 MinIO 的详细信息,请参阅官方 MinIO 文档

1. 根据需求选择 MinIO 模式

MinIO 模式优化对象需要存储基础架构
独立 MinIO(在单个主机上)快速设置空值
MinIO 作为 NAS 网关NAS(网络连接存储)NAS 设备
群集式 MinIO(也称为分布式 MinIO)数据安全性在群集中运行的存储服务器

有关选项的详细信息,请参阅官方 MinIO 文档

警告:MinIO 已宣布删除 MinIO 网关。 从 2022 年 6 月 1 日起,当前 MinIO NAS 网关实施的支持和 Bug 修复将仅通过其 LTS 支持合同提供给付费客户。 如果要继续使用 MinIO 网关与 GitHub Packages,我们建议转向 MinIO LTS 支持。 有关详细信息,请参阅计划删除 minio/minio 存储库中的适用于 GCS、Azure 和 HDFS 的 MinIO 网格

其他 MinIO 模式在标准支持下仍然可用。

2. 安装、运行和登录到 MinIO

  1. 为 MinIO 设置首选环境变量。

    这些示例使用 MINIO_DIR

    $ export MINIO_DIR=$(pwd)/minio
    $ mkdir -p $MINIO_DIR
  2. 安装 MinIO。

    $ docker pull minio/minio

    有关详细信息,请参阅官方“MinIO 快速入门指南”。

  3. 使用您的 MinIO 访问密钥登录 MinIO。

    $ export MINIO_ACCESS_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
    # this one is actually a secret, so careful
    $ export MINIO_SECRET_KEY=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
    $ export MINIO_ACCESS_KEY=$(cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
    # this one is actually a secret, so careful
    $ export MINIO_SECRET_KEY=$(cat /dev/urandom | LC_CTYPE=C tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)

    您可以使用环境变量访问 MinIO 密钥:

    $ echo $MINIO_ACCESS_KEY
    $ echo $MINIO_SECRET_KEY
  4. 在您选择的模式下运行 MinIO。

    • 在单一主机上使用 Docker 运行 MinIO:

      $ docker run -p 9000:9000 \
              -v $MINIO_DIR:/data \
              -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY" \
              -e "MINIO_SECRET_KEY=$MINIO_SECRET_KEY" \
              minio/minio server /data

      有关详细信息,请参阅“MinIO Docker 快速入门指南”。

    • 使用 Docker 作为 NAS 网关运行 MinIO:

      此设置对于已经有 NAS 用作 GitHub Packages 的备份存储的部署非常有用。

      $ docker run -p 9000:9000 \
              -v $MINIO_DIR:/data \
              -e "MINIO_ACCESS_KEY=$MINIO_ACCESS_KEY" \
              -e "MINIO_SECRET_KEY=$MINIO_SECRET_KEY" \
              minio/minio gateway nas /data
    • 使用 Docker 作为集群运行 MinIO: 此 MinIO 部署使用多个主机和 MinIO 的擦除编码来提供最强的数据保护。 若要在群集模式下运行 MinIO,请参阅“分布式 MinIO 快速入门指南”。

3. 为 GitHub Packages 创建 MinIO 存储桶

  1. 安装 MinIO 客户端。

    $ docker pull minio/mc
  2. 使用 GitHub Enterprise Server 可以访问的主机 URL 创建存储桶。

    • 本地部署示例:

      $ export MC_HOST_minio="http://${MINIO_ACCESS_KEY}:${MINIO_SECRET_KEY} @localhost:9000"
      $ docker run minio/mc BUCKET-NAME

      此示例可用于 MinIO 单机版或作为 NAS 网关的 MinIO。

    • 集群部署示例:

      $ export MC_HOST_minio="http://${MINIO_ACCESS_KEY}:${MINIO_SECRET_KEY} @minioclustername.example.com:9000"
      $ docker run minio/mc mb packages

后续步骤

要完成 GitHub Packages 的存储配置,您需要复制 MinIO 存储 URL:

echo "http://${MINIO_ACCESS_KEY}:${MINIO_SECRET_KEY}@minioclustername.example.com:9000"

有关后续步骤,请参阅“使用 MinIO 启用 GitHub Packages”。