¿Qué editor de texto está disponible en Heroku bash shell?
heroku dashboard login (10)
Depuración en Heroku
Preparar el dinamómetro
Después de instalar naaman/heroku-vim
puedes crear un nuevo dyno efímero a través de heroku vim
. Como se señaló correctamente en otras publicaciones, no podrá ver los cambios cuando los vea a través del navegador porque los cambios no se propagarán, pero ... en realidad puede ver los cambios desde dentro del banco de datos.
Solo he experimentado con la "navegación" a través de curl, pero si puedes obtener lynx
allí, o mejor aún obtener un túnel ssh, podría ser realmente genial.
Comience el servidor
El servidor web no se ejecutará cuando crea una instancia de heroku-vim, por lo que tendrá que hacerlo usted mismo. En mi ejemplo estoy ejecutando php:
~ $ cat Procfile
web: vendor/bin/heroku-php-apache2
¡Usted puede comenzar este comando usted mismo!
~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
[2] 845
¡Ahora se ejecuta en segundo plano!
riza tu sitio web
Dynos se inicia en puertos aleatorios. ¡Afortunadamente sabes cuál es la variable $PORT
!
~ $ curl localhost:$PORT
Hello World!
Edición
Haga lo de vim ahora, pero cuando guarde el archivo y se doble de nuevo, no verá los cambios. No entiendo dónde está en caché, pero está en caché. Tienes que matar el servidor y reiniciarlo.
Reiniciar el servidor
Encuentra el ID del proceso
~ $ 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
Aquí
582
es el id padre: úsalo.kill 582
Espere solo 1 segundo y luego vuelva a iniciar el servidor (¡obtendrá una nueva identificación de proceso!). Curling a través del mismo comando ahora le dará la página actualizada.
Estoy tratando de actualizar httpd.conf en mi aplicación Heroku basada en Cedar. Llegué a mi Heroku bash con
heroku run bash
y encontré el directorio de conf bajo apache. Pero cuando intento abrir cualquier editor vi, vim o emacs, no puedo encontrar ninguno de estos programas. ¿Cómo se editan los archivos conf en Heroku?
Ahora hay una serie de buildpacks que incluyen vim: https://elements.heroku.com/search/buildpacks?q=vim
Puede agregar uno de estos a la aplicación Heroku en cuestión, usando soporte de buildpack .
De forma alternativa, si su servidor ejecuta php es cargar PHP File Manager, archivo único y puede descargarlo de
http://phpfm.sourceforge.net/
En los comentarios en el enlace de respuesta de Brian Takita, hay una solución más reciente para que Vim trabaje en la consola Heroku:
https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e
¡Simplemente me ahorró mucho tiempo! :)
Incluso si pudieras editar los archivos con vi
, probablemente no resolvería tu problema porque el sistema de archivos es efímero. Significado ... Si edita un archivo a través de heroku run bash
, en realidad no está cambiando el archivo para otros dynos. Para cambiar un archivo para todos los dynos, necesitas cambiar lo que presionas en un repositorio de Git o cambiar el buildpack. Más detalles:
https://devcenter.heroku.com/articles/oneoff-admin-ps#formation-dynos-vs-oneoff-dynos
Parece que puedes descargar e instalar vim para tu sesión:
Recientemente convertí la esencia original en un plugin de heroku cli .
Solo instala:
heroku plugins:install https://github.com/naaman/heroku-vim
Y use:
heroku vim
El comando heroku vim
llevará a un shell bash con vim
instalado en su $PATH
. Todo lo que tienes que hacer es heroku vim
a entrenar tus dedos para escribir heroku vim
lugar de heroku run bash
.
Si no quieres jugar con complementos y solo quieres una copia de nano en tu dinamómetro único, solo ejecuta
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
Esto descargará una copia de nano de este complemento y lo pondrá en su RUTA.
Una alternativa urgente para editar un archivo en Heroku:
- coloque una copia en algún host remoto. Me gusta usar Gist
- edite el archivo en Gist y cuando termine obtenga la URL sin procesar
-
wget
la URL en bruto en su Bash Heroku - copiar el archivo recuperado a la ruta del archivo original
hay ed
si eres un masoquista.