使用 Capistrano 部署 .env 文件

Deploying .env file with Capistrano

我想在使用 Capistrano 部署时将 .env 文件从本地计算机上传到我的远程计算机,但由于我不是 Ruby 专业人士,所以我没有得到我想要的结果。我想要做的是获取我的本地 .env 并使其在 shared_path 中的远程计算机上可用。之后,只需将其与 current_path 进行符号链接即可。

namespace :env do
  desc "We take local env and set up on remote"
  task :setup do
    on roles(:app), in: :sequence, wait: 5 do  
      puts File.read(".env"), "#{shared_path}/config/.env"

      execute "ln -nfs #{shared_path}/config/.env #{current_path}/.env"
    end
  end
end

现在这段代码将 .env 创建为一个空文件。我做错了什么?或者我应该只执行 rsync 或使用 Capistrano 来实现我想要的东西?

我认为 puts 不会在那里工作。

试试 capistrano 的 upload method

upload(from, to, options={}, &block)