ruby-on-rails - Capistrano deploy 命令后没有任何反应
问题描述
我正在使用 Capistrano gem 部署管理我的 Ruby on Rails 应用程序。它与 AWS 服务器、EC2、MySQL Redis 连接。当我输入命令“cap production deploy”或“cap staging deploy”时,没有任何反应。我只是卡在那里。
在此处添加我的 SSH 密钥已正确添加。而在我的 AWS 安全组中,只有授权的 IP 被添加,才有部署的权限。我的IP也被添加了。
但是当我在所有安全组中添加开放端口 0.0.0.0/0 时,它允许我进行部署。但是为了应用程序的安全性,我不应该添加开放端口。
可能是什么原因以及如何解决这些问题?
我的控制台的屏幕截图,没有任何反应
下面是我的 deploy.rb 文件:
SSHKit.config.command_map[:rake] = 'bundle exec rake'
# config valid only for current version of Capistrano
lock '3.8.1'
set :application, 'my_app'
set :repo_url, 'git@gitlab.com:_____'
set :deploy_via, :remote_cache
set :rvm_roles, [:app, :web]
set :rvm_type, :user
set :rvm_ruby_version, 'ruby-2.4.0'
set :log_level, :debug
set :pty, false
set :linked_files, %w{config/application.yml config/database.yml}
set :linked_dirs, %w{log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system public/assets public/uploads}
set :keep_releases, 10
set :whenever_roles, [:web, :app,:db]
set :whenever_identifier, "#{fetch(:application)}_#{fetch(:stage)}"
namespace :deploy do
desc 'restart (upgrade) unicorn server'
task :restart do
invoke 'unicorn:restart'
end
after :finishing, 'deploy:cleanup'
after 'deploy:publishing', 'deploy:restart'
after :restart, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
within release_path do
execute :rake, 'tmp:cache:clear'
end
end
end
end
namespace :delayed_job do
desc 'List of running delayed job workers'
task :list do
on roles(:all) do |host|
execute :ps, 'aux | grep delayed_job'
end
end
desc 'Stop delayed_job workers forcefully'
task :kill do
on roles(:all) do |host|
execute :kill, "-9 $(ps aux | grep delayed_job | awk '{print $2}')"
end
end
end
task :upload_secret_files do
on roles(:all) do |host|
begin
execute "mkdir -p #{shared_path}/config"
rescue
end
upload! 'config/application.yml', "#{shared_path}/config/application.yml"
upload! 'config/database.yml', "#{shared_path}/config/database.yml"
end
end
task :log do
on roles(:all) do |host|
execute "tail -f #{current_path}/log/#{fetch(:rails_env)}.log"
end
end
desc 'Invoke a rake command on the remote server'
task :invoke, [:command] => 'deploy:set_rails_env' do |task, args|
on primary(:app) do
within current_path do
with rails_env: fetch(:rails_env) do
rake args[:command]
end
end
end
end
解决方案
我在完全相同的问题上苦苦挣扎,花了几个小时。没看懂是什么问题。我重新启动本地操作系统后它才开始工作
推荐阅读
- prestashop - Prestashop 从 1.7.1.2 升级到新版本
- r - 如何在 React Native 中通过 Redux 使用多个数组来存储状态值
- javascript - 根据对象数组内的对象条件返回布尔值
- c# - Quickbooks Online Api SDK c# - 有没有办法使用 api 为账单创建和更新隐藏的自定义字段
- java - 让 JMS 消费者保持活动状态以获取消息
- python - 加载带有自定义层的模型时出现 Keras TypeError
- flutter - 包装 Column 时 SingleChildScrollView 无法正常工作
- javascript - ChartJS 为每列添加不同的行
- powerbi - 如何在 power bi 的 Total Cost Value 列中放置连字符
- java - 是否可以为Android手机和电视创建一个apk?