コンテナレジストリによる認証
GitLab 16.0 以降では、外部認証によって個人アクセストークンやデプロイトークンがコンテナやパッケージのレジストリにアクセスできなくなり、これらのトークンを使ってレジストリにアクセスするすべてのユーザーに影響が及びます。コンテナやパッケージのレジストリで個人アクセストークンやデプロイトークンを使いたい場合は、外部認証を無効にすることができます。
コンテナレジストリで認証を行うには、:
これらの認証方法はすべて、最小限のスコープを必要とします:
- 読み取り(プル)アクセスの場合、
read_registry
。 - 書き込み(プッシュ)アクセスについては、
write_registry
およびread_registry
。
認証するには、docker login
コマンドを実行します。例えば
docker login registry.example.com -u <username> -p <token>
GitLab CI/CD を使って認証します。
CI/CD を使ってコンテナレジストリで認証するには、次のようにします:
-
CI_REGISTRY_USER
CI/CD 変数。この変数はコンテナレジストリへの読み書きアクセスが可能で、1つのジョブにのみ有効です。パスワードも自動的に作成され、
CI_REGISTRY_PASSWORD
に割り当てられます。docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
-
docker login -u $CI_REGISTRY_USER -p $CI_JOB_TOKEN $CI_REGISTRY
- 最小スコープのデプロイトークン:
- 読み込み(プル)アクセスには、
read_registry
。 - 書き込み(プッシュ)アクセスについては、
write_registry
。
docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
- 読み込み(プル)アクセスには、
- の最小スコープを持つ個人アクセストークン:
- 読み込み(プル)アクセスには、
read_registry
。 - 書き込み(プッシュ)アクセスについては、
write_registry
。
docker login -u <username> -p <access_token> $CI_REGISTRY
- 読み込み(プル)アクセスには、