Google CloudBuildを使用しようとしています。あるステップで、実行中のすべてのコンピューティングインスタンスのリストを取得する必要があります。
- name: gcr.io/cloud-builders/gcloud
args: ['compute', 'instances', 'list']
そしてそれはうまくいきます。出力をファイルに保存しようとすると問題が発生します
トライアル1:失敗
- name: gcr.io/cloud-builders/gcloud
args: ['compute', 'instances', 'list', '> gce-list.txt']
トライアル2:失敗
- name: gcr.io/cloud-builders/gcloud
args: ['compute', 'instances', 'list', '>', 'gce-list.txt']
トライアル3:失敗
- name: gcr.io/cloud-builders/gcloud
args: >
compute instances list > gce-list.txt
トライアル4:失敗
- name: gcr.io/cloud-builders/gcloud
args: |
compute instances list > gce-list.txt
更新:2018-09-04 17:50
トライアル5:失敗
gcloud compute instances list
を呼び出します詳細については、この要点を確認できます: https://Gist.github.com/mahmoud-samy/e67f141e8b5d553de68a58a30a432ed2
残念ながら、私はこの奇妙なエラーを受け取りました:
rev 1
エラー:(gcloud)認識されない引数:リスト(「リスト」を意味しましたか?)
rev 2
エラー:(gcloud)認識されない引数:-version(「-version」を意味しましたか?)
何か提案や参考資料はありますか?
他の回答に加えて、cmd > foo.txt
を実行するには、ビルドエントリポイントをbash(またはsh)にオーバーライドする必要があります。
- name: gcr.io/cloud-builders/gcloud
entrypoint: /bin/bash
args: ['-c', 'gcloud compute instances list > gce-list.txt']
これらのコマンドはシェルでは実行されないため、パイプ(|
)やリダイレクト(>
)などのシェル操作は使用できません。
がシェルを持っているgcloud
コンテナを使用します。 gcr.io/cloud-builders/gcloud
コンテナにはbash
が必要です。これは、最終的にはUbuntu 16.04イメージから 派生 であるためです。
Cloud Buildタスクシーケンスで、gcloud
呼び出しを実行し、出力をファイルにリダイレクトするシェルスクリプトを実行します。これにはいくつかの所見があります。
gcloud
コンテナは引き続き使用できます。これにより、スクリプトでGoogle CloudSDKツールを使用できるようになります。 CloudBuildマニフェストのentrypoint
を/bin/bash
またはその他のシェルにオーバーライドし、スクリプトへのパスを引数として渡す必要があります。compute.instances.list
権限も必要になります。/workspace
ディレクトリはすべてのクラウドビルドコンテナにマウントされ、その内容は後続のビルドステップ間で保持され、その後のビルドステップからアクセスできます。 gcloud
コマンドの出力、または後処理されたバージョンが後続のビルドステップで必要な場合は、ここに書き出すことができます。
関連 Googleドキュメント 。