Какой текстовый редактор доступен в Heroku bash shell?
Я пытаюсь обновить httpd.conf в моем приложении Heroku на основе кедра. Я добрался до своего Heroku bash с
heroku run bash
и нашел conf dir под apache. Но когда я пытаюсь открыть любой редактор vi, vim или emacs, я не могу найти ни одну из этих программ. Как вы редактируете файлы conf на Heroku?
10 ответов:
Я недавно перевел оригинальный Гист на heroku CLI plugin.
просто установить:
heroku plugins:install https://github.com/naaman/heroku-vim
и использовать:
heroku vim
The
heroku vim
команда бросит вас в оболочку bash сvim
установленных на вашем$PATH
. Все, что вам нужно сделать, это переучивать пальцы, чтобы набратьheroku vim
вместоheroku run bash
.
Если вы не хотите возиться с плагинами и просто хотите получить копию nano в своем одноразовом dyno, просто запустите
mkdir /app/nano curl https://github.com/Ehryk/heroku-nano/raw/master/heroku-nano-2.5.1/nano.tar.gz --location --silent | tar xz -C /app/nano export PATH=$PATH:/app/nano
Это позволит загрузить копию nano из плагин и поставить его на вашем пути.
похоже, вы можете скачать и установить vim за один сеанс:
#!/usr/bin/env bash curl https://s3.amazonaws.com/heroku-jvm-buildpack-vi/vim-7.3.tar.gz --output vim.tar.gz mkdir vim && tar xzvf vim.tar.gz -C vim export PATH=$PATH:/app/vim/bin
эта идея была найдена здесь.
даже если вы можете редактировать файлы с помощью
vi
вероятно, это не решит вашу проблему, потому что файловая система эфемерна. Значение... Если вы редактируете файл черезheroku run bash
вы на самом деле не изменение файла на других динамометрических стендах. Изменить файл для всех динамометрических стендах необходимо либо изменить то, что вы пуша в репозиторий Git или изменить buildpack-пакет. Еще details:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
отладка на Heroku
подготовить Дино
после установки
naaman/heroku-vim
вы можете создать новый эфемерный Дино черезheroku vim
. Как правильно указано в других сообщениях, вы не сможете увидеть свои изменения при просмотре через браузер, потому что изменения не будут распространяться, но... вы реально можете увидеть изменения внутри самого Дино.я только экспериментировал с "просмотром" через curl, но если бы вы могли получить
lynx
там, или лучше тем не менее, получить ssh-туннель-может быть действительно здорово.запустить сервер
веб-сервер не будет работать при создании экземпляра heroku-vim, поэтому вам нужно будет сделать это самостоятельно. В моем примере я запускаю php:
~ $ cat Procfile web: vendor/bin/heroku-php-apache2
вы можете запустить эту команду сами!
~ $ vendor/bin/heroku-php-apache2 2>/dev/null & [2] 845
сейчас он работает в фоновом режиме!
завить свой сайт
Dynos запускается на случайных портах. К счастью, вы знаете, какой из них, потому что это
$PORT
переменной!~ $ curl localhost:$PORT Hello World!
редактирование
Сделайте свою вещь vim сейчас, но когда вы сохраните файл и снова свернетесь - вы не увидите изменений. Я не понимаю, где он кэшируется, но он кэшируется. Вы должны убить сервер и перезапустить его.
перезапуск сервера
найти идентификатор процесса
~ $ ps -f UID PID PPID C STIME TTY TIME CMD u6897 3 1 0 05:34 ? 00:00:00 bash u6897 582 3 0 05:53 ? 00:00:00 bash vendor/bin/heroku-php-apache2 u6897 652 582 0 05:53 ? 00:00:00 bash vendor/bin/heroku-php-apache2 u6897 653 582 0 05:53 ? 00:00:00 bash vendor/bin/heroku-php-apache2
здесь
582
является родительским идентификатором - используйте это.kill 582
подождите 1 секунда, а затем снова запустите сервер (вы получите новый идентификатор процесса!). Керлинг с помощью той же команды теперь даст вам обновленную страницу.
в комментариях к ссылке на ответ Брайана Такиты есть более свежее решение, чтобы получить Vim работа на консоли Heroku:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
просто сэкономил мне много времени! :)
срочная Альтернатива для редактирования файла в Heroku:
- скопируйте его на какой-нибудь удаленный хост. Мне нравится использовать Gist
- редактирование файла на Суть, а по окончании получить исходный URL-адрес к нему
wget
необработанный URL на вашем Heroku bash- скопируйте извлеченный файл в путь к исходному файлу
альтернативный способ, если ваш сервер запускает php, - загрузить PHP File Manager, это один файл, и вы можете загрузить его из
http://phpfm.sourceforge.net/
теперь есть несколько пакетов сборки, которые включают vim:https://elements.heroku.com/search/buildpacks?q=vim
вы можете добавить один из них в рассматриваемое приложение Heroku, используя поддержка buildpack поддержка.