ruby-on-rails - Capistrano 无法读取 ENV 变量
问题描述
我正在使用 Capistrano 部署我的 Rails 应用程序。现在我m facing error below when I enter command
限制生产部署`:
✔ 02 deploy@82.196.13.29 0.475s
04:44 webpacker:precompile
01 $HOME/.rbenv/bin/rbenv exec bundle exec rails webpacker:clobber
(Backtrace restricted to imported tasks)
cap aborted!
Errno::ENOENT: No such file or directory - ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.5" RAILS_ENV="production" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.5" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rails webpacker:clobber )
Tasks: TOP => webpacker:precompile
(See full trace by running task with --trace)
The deploy has failed with an error: No such file or directory - ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.5" RAILS_ENV="production" RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.5" RAILS_ENV="production" ; $HOME/.rbenv/bin/rbenv exec bundle exec rails webpacker:clobber )
这是我的 deploy.rb 文件:lock "~> 3.11.0"
set :application, "appName"
set :repo_url, "git@github.com:githubusername/appName"
# Deploy to the user's home directory
set :deploy_to, "/home/deploy/#{fetch :application}"
set :default_env, {
'RBENV_ROOT' => '$HOME/.rbenv',
'RBENV_VERSION' => '2.5.5',
'RAILS_ENV' => 'production'
}
append :linked_dirs, 'log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'vendor/bundle', '.bundle', 'public/system', 'public/uploads'
# Only keep the last 5 releases to save disk space
set :keep_releases, 5
before "deploy:assets:precompile", "deploy:yarn_install"
namespace :deploy do
desc 'Run rake yarn:install'
task :yarn_install do
on roles(:web) do
within release_path do
execute("cd #{release_path} && yarn install")
end
end
end
end
after 'deploy:updated', 'webpacker:precompile'
我在这个应用程序中使用 Rails 5.2.3 和 Ruby 2.5.5。我还有一个文件.rbenv
,/home/deploy/appName
其中包含以下变量:
RAILS_MASTER_KEY=ohai
SECRET_KEY_BASE=1234567890
STRIPE_PUBLIC_KEY=x
STRIPE_PRIVATE_KEY=y
我该如何解决这个问题?
解决方案
推荐阅读
- java - 用于无状态 API 的 Spring Security Basic Auth,带有基于 http 的摘要
- c# - WPF MVVM 数据网格绑定
- scrapy - 使用 Scrapy 循环浏览网页的请求 URL 页面
- javascript - 如何在 ReactJS 中将删除函数作为道具传递
- c++ - 存在可以使编译器进入无限循环的编译时计算
- c++ - 有没有办法减少 IF 语句的数量?
- mariadb - SQITCH DEPLOY 失败并出现错误:“mysql.exe”意外返回退出值 1
- c++ - 在 filePath.exe 中的 0x793F3729 (vcruntime140d.dll) 处引发异常:0xC0000005:访问冲突写入位置 0xCDCDCDCD
- python - 如何检测点击了哪个 PyQt5 QtWidgets.QPushButton?
- python - 如何在 tkinter 中对齐两帧的行?