Можно ли загружать все файлы приложения в Cloud Foundry?

Можно ли загружать файлы приложения на локальный ПК, т.е. выполнять операцию напротив "push"?

Ответ 1

Я использую этот простой script, чтобы загрузить все файлы журналов в моем приложении, которые вы можете настроить, чтобы получить весь контент в папке приложения

    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

Ответ 2

Последние версии cf (Интерфейс командной строки Cloud Foundry) делает это проще с помощью плагина скачать > : https://github.com/ibmjstart/cf-download

Подробнее от одного из авторов на http://blog.ibmjstart.net/2015/05/22/cf-download/

Edit Как отметил Дхарми, это не работает с бэкэндом Диего https://github.com/ibmjstart/cf-download/issues/12

Ответ 3

Если ваше приложение успешно завершило подготовку (т.е. пакет сборки был запущен и завершен), вы сможете загружать дроплет, созданный 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

ОБНОВЛЕНИЕ (2/2/2019)

Убедитесь, что вы используете флаг --output cf curl. Если вы просто перенаправите вывод cf curl в файл, вы получите дополнительный символ конца строки в конце капли (или другой загрузки). Для бинарных загрузок это может вызвать проблемы. Некоторые инструменты просто игнорируют дополнительный символ, например tar, но это приведет к сбою приложения, если вы загрузите каплю с помощью cf push --droplet.


ОБНОВЛЕНИЕ (13/07/2018)

Также существует cf local, который является плагином cf cli, который делает несколько вещей. Одна из вещей, которую он позволяет вам делать - это легко экспортировать и импортировать капли. Это, вероятно, самый простой способ сделать это в будущем.

https://github.com/cloudfoundry-incubator/cflocal

Ответ 4

ОК, чувак У меня были такие же проблемы. Самый простой способ - это SCP через SSH.

Чтобы сделать это проще, я поставил следующие шаги.

После всего Я полагаю, что вы уже установили "Cf cli" в вашей среде. Посмотрите, как в: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html

Теперь для входа в облачный литейный SSH нам нужно кое-что сделать:

  1. Включите SSH в вашем приложении IBM
  2. Получить хост SSH
  3. Получить пользователя
  4. Получить пароль

Шаг 01 - Включить SSH

Смотрите официальные ссылки в: https://docs.cloudfoundry.org/devguide/deploy-apps/ssh-apps.html

Откройте CMD или введите в терминале:

cf login - это похоже на бла бла бла

> cf enable-ssh app-name

  Вы действительно хотите знать имя приложения! Это основы...

Шаг 2 - Получить хост сервера

Ну... если мне нужно объяснить, что такое хост ssh, лучше откатить отсюда. Если нет, запустите команду (маленькая шутка):

cf curl/v2/info

  

"app_ssh_endpoint": "ssh.MY-DOMAIN.com:2222"

     

    Результатом является JSON со многими атрибутами.     Скопируйте поле с именем "app_ssh_endpoint".     Посмотрите, что после ":" есть порт ssh для заполнения формы Winscp или команды терминала.

   Шаг 3 - Конкатенация вашего имени пользователя

Имя пользователя состоит из "cf:" + "GUID" + "/" + "InstanceID".

Чтобы получить GUID, запустите команду терминала:

cf app MY-AWESOME-APP --guid

  Вернуть длинный идентификатор, например: abcdefab-1234-5678-abcd-1234abcd1234

Идентификатор экземпляра - это порядковый номер экземпляра приложения. Первый экземпляр приложения становится с "0 0".

Таким образом, в качестве имени пользователя мы имеем cf: my-guid-result/0.

Шаг 4 - Получить временный пароль

Этот шаг восстанавливает одноразовый проход. Это! Вы используете только один раз пропуск. Но вы можете выполнять эту команду каждый раз, когда будете подключаться к серверу или выполнять команды.

Чтобы получить команду терминала pass pass:

cf ssh-code

  Верните небольшой пароль: abcdefab

После этого я рекомендую:

Если вы хотите загрузить целую папку "app/", как я, сожмите ее и загрузите с графическим интерфейсом winSCP или с помощью терминала с помощью команды "scp".

Это не интуитивно понятно, но возможно. Я желаю тебе удачи.

Ответ 5

Я написал этот Ruby Gist некоторое время назад, он должен по-прежнему работать с небольшими небольшими настройками или как есть.

https://gist.github.com/danhigham/4705713