Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-07-09. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии GitHub Enterprise Server. Чтобы получить справку по обновлению, обратитесь в службу поддержки GitHub Enterprise.

Краткое руководство по настройке контейнера хранилища MinIO для пакетов GitHub

Настройте пользовательский контейнер хранилища MinIO для применения с GitHub Packages.

Platform navigation

Прежде чем включить и настроить GitHub Packages на экземпляр GitHub Enterprise Server, необходимо подготовить решение для хранения сторонних производителей.

MinIO предлагает хранилище объектов с поддержкой API S3 и GitHub Packages на предприятии.

В этом кратком руководстве показано, как настроить MinIO с помощью Docker для использования с GitHub Packages, но у вас кроме Docker существуют другие варианты управления MinIO. Дополнительные сведения о MinIO см. официальные документы MinIO.

1. Выберите режим MinIO для ваших потребностей

Режим MinIOОптимизировано дляТребуемая инфраструктура хранилища
Автономная minIO (на одном узле)Быстрая настройкаНет данных
Кластерное MinIO (также называется распределенный 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 в выбранном режиме.

    • Запустите MinIO с помощью Docker на одном узле:

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

    • Запустите MinIO с помощью Docker в качестве кластера. В этом развертывании MinIO используется несколько узлов и стирание кода MinIO для наиболее надежной защиты данных. Сведения о запуске MinIO в режиме кластера см. в статье Краткое руководство по распределенной MinIO.

3. Создайте контейнер MinIO для GitHub Packages

  1. Установите клиент MinIO.

    docker pull minio/mc
    
  2. Создайте контейнер с URL-адресом узла, доступ к которому может получить доступ GitHub Enterprise Server.

    • Пример локальных развертываний:

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

      Этот пример можно использовать для автономной версии MinIO.

    • Пример кластерных развертываний:

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

Следующие шаги

Чтобы завершить настройку хранилища для GitHub Packages, необходимо скопировать URL-адрес хранилища MinIO:

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

Дальнейшие действия см. в разделе "Включение пакетов GitHub с использованием MinIO".