这是我的Ruby项目的简易部署脚本。
set :application, "data"
set :repo_url, "git@github-data:MyCompany/api_data.git"
set :deploy_to, '/var/www/data'
append :linked_files, "config/secrets.yml"
append :linked_dirs, "log"
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :touch, release_path.join('tmp/restart.txt')
end
end
end
这很好但我需要添加一个额外的repo并将其部署到主项目的子目录中。到目前为止,我尝试了一些没有成功的事情。谢谢你的帮助
第3.8.2章
答案 0 :(得分:0)
答案 1 :(得分:0)
将我的评论扩展为答案。
另一种选择是将两个存储库独立部署到不同的文件夹,并使用linked_dirs和符号链接来连接这两个存储库。我一直都在使用这种方法。
我们假设您的应用的发布路径为$APP_PATH
,并且您的辅助仓库的发布路径为$OTHER_APP_PATH
。我们还假设您需要在您的应用中显示lib/myapp
的辅助回购。
我首先将您的辅助应用部署到服务器上的$OTHER_APP_PATH
。
然后将append :linked_dirs, 'lib/myapp'
添加到您应用的deploy.rb配置中。部署时,您应该在$APP_PATH/shared/lib/myapp
处有一个空文件夹,该文件夹与$APP_PATH/current/lib/myapp
符号链接。删除该文件夹(rmdir $APP_PATH/shared/lib/myapp
)并将其替换为辅助应用的current
目录的符号链接(ln -s $OTHER_APP_PATH/current $APP_PATH/shared/lib/myapp
)。
现在,辅助应用的内容应该显示在您主要应用的lib/myapp
文件夹中。