gcr.io のプライベート レジストリにアクセスするためのシークレットを追加しようと一日中試みています。(Google クラウド レジストリ)
gcr のドキュメントには、json キー ファイルに関する情報が含まれています。
$ docker login -e 1234@5678.com -u _json_key -p "$(cat keyfile.json)" https://eu.gcr.io
これにより、~/.docker/config.json にエントリが作成されます。ローカルでレジストリからプルしようとすると、機能します。
シークレットを追加するためにopenshiftで次のことを試しました
oc secrets new gcr .dockerconfigjson="~/.docker/config.json"
oc secrets add serviceaccount/default secrets/gcr --for=pull
oc secrets add serviceaccount/builder secrets/gcr
と
oc secrets new-dockercfg gcr --docker-server=eu.gcr.io --docker-username=_json_key --docker-password="$(cat ~/Downloads/key.json)" --docker-email=web@gcr.com
oc secrets add serviceaccount/default secrets/gcr --for=pull
oc secrets add serviceaccount/builder secrets/gcr
これにより、常に次の結果が得られます
$ oc new-app eu.gcr.io/webshops/shop-1
error: can't look up Docker image "eu.gcr.io/webshops/shop-1": Internal error occurred: error retrieving repository: server returned 403
error: no match for "eu.gcr.io/webshops/shop-1"
openshift から eu.gcr.io にアクセスするのに何か問題がありますか?