> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ale.run/llms.txt
> Use this file to discover all available pages before exploring further.

# イメージレジストリ連携

> プライベートイメージレジストリを連携すると、Containerテンプレートでカスタムイメージをデプロイすることができます。本ガイドでは**GitHub Container Registry、GCP Artifact Registry、Docker Hub**との連携について説明します。

***

## レジストリの連携

<AccordionGroup>
  <Accordion title="GitHub Container Registry">
    ### Personal Access Tokenの生成

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/ghcr-01.png" />
    </Frame>

    > GitHubアカウントの**Settings**にアクセスし、[Developer settings > Personal access tokens (classic) ページ](https://github.com/settings/tokens)から`Generate new token > Generate new token(classic)`をクリックしてトークンを生成してください。

    ### 権限の付与とトークンの発行

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/ghcr-02.png" />
    </Frame>

    > 以下の権限を付与し、`Generate token`をクリックしてください。

    * **repo**
    * **write:packages**
    * **admin:public\_key**

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/ghcr-03.png" />
    </Frame>

    > トークンの生成が完了すると、トークン値が表示されます。トークンは生成時に一度だけ値を確認することができます。

    ### エールへの連携

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/ghcr-05.png" />
    </Frame>

    スペース設定画面のチームページ

    > スペース設定画面のアドオンページから`コンテナレジストリを連携する`をクリックすると表示されるコンテナレジストリ設定モーダルで、以下の値を入力し`連携する`をクリックすると\*\*GitHub Container Registryが連携されます。

    * **レジストリプロバイダー** : GitHub Container Registry
    * **GitHubアカウント** : GitHub ID
    * **パーソナルアクセストークン(PAT)** : GitHubで生成したPersonal Access Token
  </Accordion>

  <Accordion title="GCP Artifact Registry">
    ### GCP Artifact Registryの作成

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-01.png" />
    </Frame>

    > Google Cloud コンソールで**Artifact Registry**サービスにアクセスし、`リポジトリを作成`をクリックしてください。

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-02.png" />
    </Frame>

    > リポジトリの名前を適切に設定し、以下の値を入力して`作成`をクリックするとリポジトリが作成されます。

    * **フォーマット** : Docker
    * **モード** : 標準
    * **ロケーションタイプ** : リージョン
    * **リージョン** : ユーザーの状況に応じたリージョンを選択
    * **暗号化** : Google管理の暗号化キー

    ### レジストリの接続アドレスの確認

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-03.png" />
    </Frame>

    > 作成したリポジトリをクリックすると、`[リージョン]-docker.pkg.dev/[GCPプロジェクトID]/[リポジトリ名]`形式の接続アドレスを確認できます。

    <Note>
      レジストリの接続アドレスは、エールでレジストリを連携する際に使用されます。
    </Note>

    ### サービスアカウントの作成と権限付与

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-04.png" />
    </Frame>

    > Google Cloudコンソールの**IAMと管理 > サービスアカウント**ページで、`サービスアカウントを作成`をクリックしてください。

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-05.png" />
    </Frame>

    > 識別可能な**サービスアカウント名**を入力し、`作成して続行`をクリックします。

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-06.png" />
    </Frame>

    > ロール選択モーダルで**Artifact Registry管理者**を選択し、`完了`をクリックするとサービスアカウントが作成されます。

    ### JSONキーの作成

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-07.png" />
    </Frame>

    > 作成されたサービスアカウントの右側にある<Icon icon="ellipsis-vertical" size={15} color="000" />アイコンをクリックし、**キーの管理**を選択してください。

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-08.png" />
    </Frame>

    > 作成したサービスアカウントのキー管理ページの**キーを追加 > 新しいキーを作成**をクリックすると表示される**新しい秘密鍵の作成**モーダルで、キータイプとして**JSON**を選択し、`作成`をクリックするとJSONキーがファイル形式でダウンロードされます。

    ### エールへの連携

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/gcp-ar-11.png" />
    </Frame>

    > スペース設定画面のアドオンページから`コンテナレジストリを連携する`をクリックすると表示されるコンテナレジストリ設定モーダルで、以下の値を入力し`連携する`をクリックするとGoogle Cloud Artifact Registryが連携されます。

    * **レジストリプロバイダー** : Google Cloud Artifact Registry
    * **接続アドレス** : リポジトリ作成後に確認した接続アドレス
    * **キーファイル(JSON)** : JSONキーファイルの内容
  </Accordion>

  <Accordion title="Docker Hub">
    ### Docker Hub Access Tokenの生成

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/docker-hub-01.png" />
    </Frame>

    > Docker Hubアカウントを作成後、右上のアカウント名をクリックします。
    > 続いて**Account Settings > Security**にアクセスし、`New Access Token`をクリックします。

    ### 権限の付与とトークンの発行

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/docker-hub-02.png" />
    </Frame>

    > Access Token Descriptionフィールドにトークンの用途や役割を区別できる文言を入力し、Access permissionsは**Read & Write**を選択してください。
    > 生成されたトークンは最初の1回のみ確認可能です。

    ### エールへの連携

    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/operations/images/docker-hub-04.png" />
    </Frame>

    > スペース設定画面のアドオンページから`コンテナレジストリを連携する`をクリックすると表示されるコンテナレジストリ設定モーダルで、以下の値を入力し`連携する`をクリックするとDocker Hubが連携されます。

    * **レジストリプロバイダー** : Docker Hub
    * **ユーザー名** : Docker Hub ID
    * **パスワード（トークン）** : Docker Hub Access token
  </Accordion>
</AccordionGroup>

## イメージのデプロイ

<Frame>
  <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/09_01.png" />
</Frame>

> ダッシュボードの <Icon icon="circle-plus" iconType="solid" size={15} color="2396F1" /> または `⌘ + K` で表示されるデプロイモーダルで、Containerテンプレートを選択し、必要な設定値を入力してデプロイできます。

<AccordionGroup>
  <Accordion title="コンテナイメージアドレスとタグ">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/09_02.png" />
    </Frame>

    > 接続したレジストリにあるイメージのイメージURLとタグを入力してください。
  </Accordion>

  <Accordion title="ポート番号、環境変数、Start Command">
    > イメージデプロイに必要な設定値を入力してください。
  </Accordion>

  <Accordion title="詳細オプション">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/09_03.png" />
    </Frame>

    * **uid** : コンテナでプロセスを実行するユーザーの固有識別子（デフォルト値1000）

    * **gid** : コンテナでプロセスが属するグループの固有識別子（デフォルト値1000）

    * **Update strategy**

      * **Rolling Update** : 新バージョンデプロイ後、既存ポッド終了。可用リソース確保必要

      * **Recreate** : 既存ポッドを終了後、新バージョンを作成・起動。ダウンタイム発生

    * **Shell** : コンテナ実行後に実行するシェル（sh、bash、zshなど）
  </Accordion>

  <Accordion title="リソース設定とデプロイ">
    <Frame>
      <img className="block rounded-md" src="https://files.cloudtype.io/ale-docs/developers/images/ja/08_04.png" />
    </Frame>

    * **リソースタイプ**：[オンデマンドとスポットリソース](/ja/developers/resource#on-demand-spot)から選択

    * **CPU**：サービスで利用可能なvCPUの上限を設定。最小構成時は0.1 vCPUを割り当て

    * **メモリ**：サービスで利用可能なメモリの上限を設定

    * [レプリカ](/ja/developers/replica)：設定した数に応じサービスを水平スケーリングし、負荷分散と可用性確保

    * **デプロイ**：`デプロイ`をクリック

    <Tip>
      リソース制限によりデプロイできない場合は、[スペースとリソースの管理ページ](/ja/operations/spaces#%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E4%BB%98%E4%B8%8E)を参照してスペースにリソースを追加してください。
    </Tip>
  </Accordion>
</AccordionGroup>
