1

これら3つの技術をすべて連携させる方法を見つけることはできません。Googleコンテナレジストリ+ Google Compute Engine + Docker

私はGoogle Container Registryを持っています。

  1. ドッキングウィンドウの実行-d gcr.io/project_id/A:latest
  2. :その中で、私は2枚のプライベート画像を持って、私は次の処理を行い、単一のインスタンステンプレートを作成したいのは、A、それらを呼ぼうとB.
  3. ドッカーrun -d gcr.io/project_id/B:latest

これだけです。私はスタートアップスクリプトでそれをやりたいと思っていました。それで私は自分のベースとして単純なイメージを使うことができました。私はそれをprodに配備することができました。

3つのバージョンのコンテナ最適化OSと3つのバージョンのCoreOSのすべてを試しました。それぞれはわずかに異なるエラーを与えます。

examplesは、gcloud docker -- pullを使用していますが、私が試した6つの環境で正しく認証されません。

その他examplesは、docker login -u oauth2accesstoken -p "$(gcloud auth application-default print-access-token)" https://gcr.ioを使用すると、これも失敗します。

私が見つけた唯一の他の選択肢は、docker login -u _json_key -p "$(cat keyfile.json)" https://gcr.ioでした.DIDを使用すると、GCEイメージを取得できます。このアプローチの欠点は、画像内でキーファイルを取得する方法です。私は、キーファイルを追加してカスタム画像を作ることができると思うが、私は2つのドッカーがコマンドを実行し、それ以上はないストック画像に固執しようとしていた。これは不可能ですか?

+1

多分疑問な質問ですが、gcloudはコンテナ最適化OSイメージの一部として含まれていません。起動スクリプトの一部としてインストールしていますか?これらのイメージにパーティションがnoexecでマウントされていると、これはどのように達成されますか? –

答えて

1

特に、どのようなエラーが表示されますか?

docker-credential-gcrは、GCEメタデータからアクセストークンを取得できます。また、gcloud config config-helper --format='value(credential.access_token)を実行してgcloud SDKのアクセストークンを取得することもできます。 gcloud auth print-access-tokenが過去に使用されましたが、正式にはサポートされていません。

関連する問題