如果我将git存储库的克隆作为远程服务器上的缓存副本进行capistrano/vlad样式部署,那么最好是做A)
git archive --format=tar origin/master | (cd #{destination} && tar xf -)
Run Code Online (Sandbox Code Playgroud)
或B)
cp -R cached-copy #{destination} && rm -Rf #{destination}/.git
Run Code Online (Sandbox Code Playgroud)
为了澄清,存储库已经在远程服务器上,我只想在部署期间将特定版本复制到同一服务器上的版本目录.
我开始使用vlad进行新部署,并且想知道设置它的最佳方式是什么,以便我可以为本地开发和远程生产服务器使用相同的任务?
我想将所有东西定义为远程任务,然后使用dev/prod方法设置域变量,然后我可以调用rake dev/prod vlad:do_something,但这只是完全错误.
我的许多任务对于在我的本地服务器和生产服务器上运行很有用,我希望通过为本地服务器设置一个"任务"并为远程服务器设置一个"remote_task"来避免重复自己.例如
def do_something
run "echo something"
end
task :do_something_dev
do_something
end
remote_task do_something_prod
do_something
end
Run Code Online (Sandbox Code Playgroud)
我错过了什么或者这些是在本地和远程计算机上使用相同rake任务的唯一选项吗?
我有production_server和git_repo_server,git_repo_server .ssh /授权密钥有生产用户id_rsa.pub.当我ssh到production_server并制作git clone时 - 它工作正常,不要问任何密码.当我尝试使用ssh将git repo克隆到我的本地mashine上的production_server时,我看到:
Permission denied, please try again.
Permission denied (publickey,password).
Run Code Online (Sandbox Code Playgroud)
看起来应该配置ssh以将命令发送到远程服务器.但我不知道该怎么做.谢谢你的帮助!