119 votes

Quel éditeur de texte est disponible dans le shell bash de Heroku ?

J'essaie de mettre à jour httpd.conf dans mon application Heroku basée sur Cedar. Je suis arrivé à mon bash Heroku avec

 heroku run bash

et j'ai trouvé le répertoire conf sous apache. Mais quand j'essaye d'ouvrir un éditeur vi, vim ou emacs, je ne trouve aucun de ces programmes. Comment éditer les fichiers conf sur Heroku ?

13voto

Jason Hee Points 131

Le plugin fourni par Naaman Newbold ne fonctionne plus avec heroku-16 j'ai donc créé une nouvelle plugin à partir de ce mise à jour de la liste .

Installez :

heroku plugins:install @jasonheecs/heroku-vim

Et utiliser :

heroku vim

7voto

Jared Points 1

Dans les commentaires sur le lien de la réponse de Brian Takita, il y a la solution plus récente pour obtenir Vim en travaillant sur la console Heroku :

https://gist.github.com/dvdbng/7375821b20f189c189ab1bd29392c98e

J'ai gagné beaucoup de temps ! :)

6voto

Mikhail Points 3536

Déboguer sur Heroku

Préparer le banc d'essai

Après avoir installé naaman/heroku-vim vous pouvez créer un nouveau dyno éphémère via heroku vim . Comme indiqué à juste titre dans d'autres messages, vous ne pourrez pas voir vos modifications lorsque vous les visualiserez via le navigateur, car elles ne seront pas propagées, mais... vous pouvez visualiser les modifications à l'intérieur même du banc.

Je n'ai fait qu'expérimenter la "navigation" via curl, mais si vous pouviez avoir lynx ou, mieux encore, un tunnel ssh, ce serait vraiment génial.

Démarrer le serveur

Le serveur web ne sera pas en cours d'exécution lorsque vous instanciez heroku-vim, vous devrez donc le faire vous-même. Dans mon exemple, j'utilise php :

~ $ cat Procfile
web: vendor/bin/heroku-php-apache2

Vous pouvez lancer cette commande vous-même !

~ $ vendor/bin/heroku-php-apache2 2>/dev/null &
[2] 845

Il fonctionne maintenant en arrière-plan !

faire boucler votre site web

Les dynos démarrent sur des ports aléatoires. Heureusement, vous savez lequel parce que c'est le $PORT variable !

~ $ curl localhost:$PORT
Hello World!

Modification de

Faites votre truc vim maintenant, mais lorsque vous enregistrez le fichier et que vous utilisez à nouveau curl, vous ne verrez pas les changements. Je ne comprends pas où c'est mis en cache, mais c'est mis en cache. Vous devez tuer le serveur et le redémarrer.

Redémarrage du serveur

  1. Trouver l'identifiant du processus

    ~ $ 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

    Ici 582 est l'identifiant du parent - utilisez-le.

    kill 582
  2. Attendez juste une seconde, puis redémarrez le serveur (vous obtiendrez un nouvel identifiant de processus !). Le curling via la même commande vous donnera maintenant la page mise à jour.

5voto

Vilson Vieira Points 489

Une alternative urgente pour éditer un fichier dans Heroku :

  1. placer une copie de celui-ci sur un hôte distant. J'aime utiliser Gist
  2. éditez le fichier sur Gist et une fois terminé, obtenez l'URL brute vers celui-ci
  3. wget l'URL brute sur votre bash Heroku
  4. copier le fichier récupéré dans le chemin du fichier original

2voto

Charles Bochet Points 49

J'ai écrit un article complet sur Comment éditer un fichier sur les dynos Heroku en utilisant Nano ou Vim mais en gros :

  • Vous pouvez utiliser la ligne de commande :

    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

  • Vous pouvez utiliser les plugins Heroku : heroku-vim

  • Vous pouvez utiliser les Buildpacks de Heroku : heroku-buildpack-vip

J'espère que cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X