Skip to main content

Эта версия GitHub Enterprise Server была прекращена 2024-03-26. Исправления выпускаться не будут даже при критических проблемах безопасности. Для повышения производительности, повышения безопасности и новых функций выполните обновление до последней версии 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".