私はphpプロジェクトでcapistrano2を使用していました。そこでは、次のようなカスタム変数を定義していました。
set :app_environment, "test"
次に、デプロイタスクでアクセスしました。例:
run "echo '#{app_environment}' > #{releases_path}/#{release_name}/protected/config/mode.php"
現在、capistrano 3では、ステージ固有の構成ファイルでこの変数を定義しています。しかし、私はそれらを私のタスクで定義していません:
undefined local variable or method `app_environment' for #<SSHKit::Backend::Netssh:0x007f92323d6988> config/deploy.rb:28:in `block (3 levels) in <top (required)>'
残念ながら、capistranoの最新バージョンに関するドキュメントはあまりなく、Rubyに精通していないため、それを適切に行う方法がわかりません。
コードは次のようになります。
_run "echo '#{fetch(:app_environment)}' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"
_
run()
はCap3に存在しないため、それでも正しくありませんが、現在はexecute()
であるため、次のようになります。
_execute "echo '#{fetch(:app_environment)}' > #{releases_path}/#{fetch(:release_name)}/protected/config/mode.php"
_
このようにコマンドを作成する場合は、コマンドマップを使用したり、within()
、as()
、またはwith()
の構成を尊重したりしないように注意してください。
これは現在、「フェッチ」を介して実現されています。
fetch(:app_environment)