Capistranoでハマったのでメモ
capistrano使ってて自分でtaskを作ってゴニョゴニョしたい時とか有るじゃないですか? それをやっててハマった訳なんですよ。恥ずかしながら、今までロクに自分でcapistranoを弄ったことなかったので気付くまで時間かかりました。capistranoをよく使う方的には当たり前な挙動なのかも知れないのですが、ハマったのはコレです。
cap shell
cap> cd /tmp
cap> pwd
これ、まさかの "/home/[user-name]" です。仕組を想像してみれば考え辛い結果(中を見てないのですが推測するに、こういうソフトウェアなので、runメソッドの度にワンセッションをブロードキャストしながら連続実行しているのでしょう)でもないのですがサーバー設定用のシェルスクリプト書いているつもりでノリノリでやってみたらハマっちゃったというのが顛末です。
cap shell
cap> cd /tmp && pwd
こうすれば結果は "/tmp" になります。環境変数を設定しながらビルドする場合もそうです。
cap export JAVA_HOME=/path/to/java/home && cd /path/to/workdir && git clone git@githost/project/master && cd /path/to/project && /path/to/maven/bin/mvn package -Pproduction
せっかくServer側にCapistranoを設定しなくても良いというのが魅力に感じたポイントなので環境変数はどこまでサーバーのセットアップ時にやっておくのか? (全サーバーに.bashrcを整えておく) というのが出てしまいそうなのが悩み所です。そこでタスクの内容をその場でシェルスクリプトとしてジェネレートして、送り付けた後に実行するというのも良いのかな? と思ったところ、
こんなの見付けたので、ついでにメモ。
Author And Source
この問題について(Capistranoでハマったのでメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/t_ishida/items/e30ea55e03e96a37cc27著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .