Можно ли загружать файлы приложения на локальный ПК, т.е. выполнять операцию напротив "push"?
Можно ли загружать все файлы приложения в Cloud Foundry?
Ответ 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, который делает несколько вещей. Одна из вещей, которую он позволяет вам делать - это легко экспортировать и импортировать капли. Это, вероятно, самый простой способ сделать это в будущем.
Ответ 4
ОК, чувак У меня были такие же проблемы. Самый простой способ - это SCP через SSH.
Чтобы сделать это проще, я поставил следующие шаги.
После всего Я полагаю, что вы уже установили "Cf cli" в вашей среде. Посмотрите, как в: https://docs.cloudfoundry.org/cf-cli/install-go-cli.html
Теперь для входа в облачный литейный SSH нам нужно кое-что сделать:
- Включите SSH в вашем приложении IBM
- Получить хост SSH
- Получить пользователя
- Получить пароль
Шаг 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 некоторое время назад, он должен по-прежнему работать с небольшими небольшими настройками или как есть.