アプリケーションのファイルをローカルPCにダウンロードすることはできますか?つまり、「プッシュ」とは逆の操作を実行できますか?
この簡単なスクリプトを使用して、アプリ内のすべてのログファイルをダウンロードします。これを微調整して、アプリフォルダー内のすべてのコンテンツを取得できます。
mkdir -p <appName>/app/data/logs
for i in `cf files <appName> app/data/logs | awk '{print $1}'`;
do cf files <appName> app/data/logs/$i > <appName>/app/data/logs/$i; done
アプリケーションが正常にステージングを終了した(つまり、ビルドパックが実行されて終了した)限り、CFによってビルドされたドロップレットをダウンロードできるはずです。これには、とりわけアプリケーションコードが含まれます。
例:
$ cf app <app-name> --guid
2836d5fe-35f7-4409-b27b-4ed308152bb4
$ cf curl /v2/apps/2836d5fe-35f7-4409-b27b-4ed308152bb4/droplet/download --output my-droplet
参照 https://apidocs.cloudfoundry.org/2.6.0/apps/downloads_the_bits_for_an_app.html & http://v3-apidocs.cloudfoundry.org/version/3.50.0 /#download-package-bits
更新(10/2/2019)
必ず--output
のcf curl
フラグを使用してください。 cf curl
の出力をファイルにリダイレクトするだけでは、ドロップレット(または他のダウンロード)の終わりに余分な行末文字が表示されます。バイナリダウンロードの場合、これは問題を引き起こす可能性があります。一部のツールはtar
のような余分な文字を単に無視しますが、cf Push --droplet
を使用してドロップレットをアップロードすると、アプリが失敗します。
更新(2018年7月13日)
cf local
もあります。これは、いくつかのことを行うcfcliプラグインです。それができることの1つは、ドロップレットを簡単にエクスポートおよびインポートすることです。これを行うには、おそらくこれが最も簡単な方法です。
最近のバージョンのcf
( Cloud Foundryのコマンドラインインターフェイス )では、ダウンロードプラグインを使用してこれを簡単にしています。 https://github.com/ibmjstart/cf-download
http://blog.ibmjstart.net/2015/05/22/cf-download/ の著者の1人からの詳細
編集Dharmiが指摘しているように、これはDiegoバックエンドでは機能しません https://github.com/ibmjstart/cf-download/issues/12
了解。私も同じ問題を抱えていました。最も簡単な方法は、SCP overSSHです。
これをできるだけ簡単にするために、次の手順を実行します。
結局のところ、あなたはすでに「Cfcli」をあなたの環境にインストールしていると思います。方法をご覧ください: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
Cloud Foundry SSHにログインするには、次のことを行う必要があります。
ステップ01-SSHを有効にする
次の公式リファレンスを参照してください: https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html
CMDまたはターミナル書き込みを開きます。
> cf login-bla blablaのようになります
> cf enable-ssh app-name
あなたは本当にアプリ名を知りたいです!それは基本です...
ステップ2-サーバーホストを取得する
ええと... sshホストとは何かを説明する必要がある場合は、ここからロールバックする方がよいでしょう。そうでない場合は、コマンドを実行します(ちょっとした冗談):
cf curl/v2/info
"app_ssh_endpoint": "ssh.MY-DOMAIN.com:2222"
結果は、多くの属性を持つjsonです。 「app_ssh_endpoint」というフィールドをコピーします。 「:」の後に、Winscpフォームまたはターミナルコマンドに入力するsshポートがあることを確認してください。
ステップ3-ユーザー名を連結します
ユーザー名は "cf:" + "[〜#〜] guid [〜#〜] "+"/"+"InstanceID "。
GUIDターミナルコマンドを実行するには:
cf app MY-AWESOME-APP --guid
次のような長いIDを返します:abcdefab-1234-5678-abcd-1234abcd1234
インスタンスIDは、アプリインスタンスの連番です。最初のアプリインスタンスは「」になります。
したがって、ユーザー名としてcf:my-guid-result/0があります。
ステップ4-一時パスワードを取得する
このステップでは、1回の使用パスを取得します。これは!パスは1回だけ使用します。 Buuuut ...サーバーに接続したり、コマンドを実行したりするたびに、このコマンドを実行できます。
パスを取得するには、ターミナルコマンドを実行します。
cf ssh-code
小さなパスワードを返す:abcdefab
この後、私はお勧めします:
私のような「app /」フォルダ全体をダウンロードしたい場合は、これを圧縮して、winSCPグラフインターフェイスを使用するか、「scp」コマンドを使用して端末からダウンロードしてください。
これは直感的ではありませんが、実行することは可能です。幸運を祈ります。
私はこれを書いたRubyしばらく前に要点、それはまだ少しの微調整で、またはそのままで動作するはずです。