Gitlabの2段階認証下でコンテナレジストリにPushする方法
Gitlabの2段階認証下で今まで通りにコンテナレジストリにPushしようとしたら、エラーが出てPush出来なかったので、対応方法をまとめました。
公開日:2020年12月23日
普通にpushすると、、、
これまで通りに、Gitlabのコンテナレジストリにpushしようとすると、
unauthorized: HTTP Basic: Access denied\nYou must use a personal access token with 'api' scope for Git over HTTP.\nYou can generate one at https://gitlab.com/-/profile/personal_access_tokens
こんなエラーが出てpush出来ません。
エラー文言の通り、2段階認証をオンにしている場合は、パーソナル・アクセストークンを使った方式でしかログインが出来ません。
対応方法
Personal Access Tokensを発行する
アカウントページ(レポジトリページではない)の左メニューに「Access Tokens」というメニューがあるので、そこからアクセストークンを発行します。
レポジトリも含めてフルアクセスのトークンを発行してもいいですが、docker環境下で使うだけなら、
- read_registry
- write_registry
の二つだけを許可したトークンを発行しておくと、色々と管理が便利です。
発行したトークンコードは二度と表示されないので、きちんとコピーしておきます。
Gitlabのコンテナレジストリにログインする
続いて、docker pushするために、docker環境(ローカルPC、リモートサーバーなど)でGitlabのコンテナレジストリにログインします。
docker login registry.gitlab.com -u ユーザー名 -p アクセストークン
下記のコマンドが出ればログイン完了です。
Login Succeeded
Gitlabコンテナレジストリにプッシュする
ここまできたらこれまで通り、レジストリにDockerイメージをプッシュできます。
docker push registry.gitlab.com/ユーザー名/レポジトリ名
Gitlabの管理画面でコンテナイメージが更新されていればOKです。
ちなみに、Gitlab CI/CDから同一レポジトリのDockerイメージを読む場合は認証は不要です。
Gitlabの2段階認証下でコンテナレジストリにPushする方法を見てきました。
ネットで調べてもCI/CD環境下から設定などしかなかったので、リモートで使う場合はこちらの方法で行けると思います。
新着ノート
-
Gitlabの2段階認証下でコンテナレジストリにPushする方法
gitlab
公開日:2020年12月23日
-
HUGO
公開日:2020年4月27日
新着コード
-
cURLでCloudflare APIでキャッシュを削除する
cloudflare
公開日:2020年5月1日
-
iOS Safariでselectを含む要素にoverflow-y:scrollすると横にスクロールする時の対応
iOS
公開日:2020年4月15日