scm设置使用capistrano将项目从windows复制到ubuntu

时间:2016-07-26 03:48:42

标签: capistrano3 rvm-capistrano whenever-capistrano

我想将我的示例项目从ubuntu部署到windows我已经成功地在ubuntu上创建了一个ssh密钥。现在我想通过仅将文件从Windows复制到ubuntu远程来实现这一点。当我执行'cap production deploy'时,我收到了这个错误 '致命:没有远程配置列出引用。' 我是客人,这是来自git。 我的问题是,如果我只将项目从Windows复制并粘贴到服务器,如何设置inscm?

顺便说一下,这是我的rb文件的代码:

Deployer.rb lock '3.5.0' --set :application, 'my_app_name' --set :repo_url, 'git@example.com:me/my_repo.git' set :application, "zemsoft" --set :deploy_to, "/var/www/my-app.com" set :deploy_to, "/var/www/e" set :domain, "zemsofterp2.com"

set :scm, "git" --set :repository, "file:/// Users/deployer/sites/my-app" set :repository, "C:/xampp/htdocs/vendor" set :deploy_via, :copy set :use_sudo, false set :keep_releases, 3 -- Default branch is :master -- ask :branch, git rev-parse --abbrev-ref HEAD.chomp

-- Default deploy_to directory is /var/www/my_app_name -- set :deploy_to, '/var/www/my_app_name'

-- Default value for :scm is :git -- set :scm, :git

-- Default value for :format is :airbrussh. -- set :format, :airbrussh

-- You can configure the Airbrussh format using :format_options. -- These are the defaults. -- set :format_options, command_output: true, log_file: 'log/capistrano.log', color: :auto, truncate: :auto

-- Default value for :pty is false -- set :pty, true

-- Default value for :linked_files is [] -- set :linked_files, fetch(:linked_files, []).push('config/database.yml', 'config/secrets.yml')

-- Default value for linked_dirs is [] -- set :linked_dirs, fetch(:linked_dirs, []).push('log', 'tmp/pids', 'tmp/cache', 'tmp/sockets', 'public/system')

-- Default value for default_env is {} -- set :default_env, { path: "/opt/ruby/bin:$PATH" }

-- Default value for keep_releases is 5 -- set :keep_releases, 5

namespace :deploy do

after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do -- Here we can do anything such as: -- within release_path do -- execute :rake, 'cache:clear' end end end

end

Production.rb role :app, %w{ely029@192.168.1.241} # EDIT your ssh username and server ip address

git rev-parse --abbrev-ref HEAD

1 个答案:

答案 0 :(得分:1)

set :deploy_via, :copy什么都不做;这不是有效的Capistrano 3设置。

Capistrano 3没有内置机制,可以通过将文件从一台机器复制到另一台机器进行部署。您需要一个中央源代码存储库,例如服务器可以访问的远程Git存储库。

有第三方Capistrano插件可以提供您需要的复制行为(搜索GitHub capistrano copy),但我无法保证其质量或效果。我的建议是使用远程Git存储库。