gpt4 book ai didi

ruby-on-rails - 如何在 Capistrano 部署期间上传文件到发布目录?

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:45 24 4
gpt4 key购买 nike

Capistrano production.rb 文件执行3个任务

  • Composer 安装 --no-dev

  • mkdir 存储

  • 上传! ".env.production", ".env"

执行了前 2 个,但上传失败:“没有这样的文件或目录”。

我能够从命令行成功地对文件进行 scp。

如何复制文件到当前发布目录?

$ cap --version
Capistrano Version: 3.11.0 (Rake Version: 12.3.1)
$ cap production deploy
...
01 mkdir -p ~/public_html/app/releases/20181122210112
...
composer install --no-dev
...
mkdir storage
...
SSHKit::Runner::ExecuteError:
Exception while executing as me@site.com:
scp: ~/public_html/app/releases/20181122210112/.env:
No such file or directory

DEBUG Uploading .env.production 0.0%
...
$

从命令行成功scp文件:

$ scp .env.production me@site.com:~/public_html/app/releases/20181122210112/.env

生产.rb

# use absolute path
set :deploy_to, "/home/user/public_html/app"

namespace :deploy do
desc "Install app dependencies with composer"
after :updated, :build do
on roles(:web) do
within release_path do
execute :composer, "install --no-dev"
execute :mkdir, "storage"
end
end
end
end

namespace :deploy do
desc "Copy Env"
after :finished, :copy do
on roles(:all) do
upload! ".env.production", "#{release_path}/.env"
end
end
end

最佳答案

如果您需要将本地 application.yml 复制到服务器,并且您已经在使用 capistrano,则可以使用 capistrano figaro gem , 它创建一个任务来更新服务器上的这个文件。理论上,您可以自动运行任务并更新此文件。是一颗古老的 gem ,但像魅力一样工作。

关于ruby-on-rails - 如何在 Capistrano 部署期间上传文件到发布目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53438458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com