Capistrano3/deploy_via_copyする/古い情報
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[Capistrano3/deploy_via_copyする]]
&tag(Capistrano3/deploy_via_copyする/古い情報);
*目次 [#s5a45114]
#contents
*関連ページ [#nbbe1fcc]
*参考情報 [#ief49c09]
*各種方法 [#a977b9fd]
**deploy_via:copyしたい(自作gem編) [#a88c0fbe]
TODO:
-capistrano-scm-copyはtarコマンドを使っているのがちょっと...
-できれば自作gemと置き換えたい。構造は単純でcopy.rakeファ...
-該当するTar/Zip gemを使いtarコマンドを使わないようにする。
-FileListのexcludeを利用する。
**deploy_via:copyしたい(自作編) [#n43b9a84]
-デフォルトではできなくなっているので、[[Capistrano3 で d...
-Gemfileにrubyzipを追加。
#pre{{
group :deployment do
gem 'capistrano', '~> 3.0', require: false
gem 'rubyzip', require: false
end
}}
-lib/capistrano/tasks/copy.rakeを作成。上記リンクからちょ...
#pre{{
require 'zip'
Zip.setup do |c|
c.unicode_names = true
c.on_exists_proc = true
c.continue_on_exists_proc = true
end
namespace :copy do
task :check do
end
task :set_current_revision do
end
task create_release: 'release.zip' do |t|
file = t.prerequisites.first
on roles(:app) do
execute :mkdir, '-p', fetch(:tmp_dir)
upload! file, fetch(:tmp_dir)
execute :unzip, '-o', "#{fetch(:tmp_dir)}/release.z...
end
File.delete file if File.exists?(file)
end
file 'release.zip' do |t|
release_filename = File.join(Dir.pwd, t.name)
Dir.chdir fetch(:copy_dir) do
Zip::File.open(release_filename, Zip::File::CREATE)...
files = FileList['**/*']
files.exclude(*fetch(:copy_exclude)).each do |file|
zipfile.add(file, file)
end
end
end
end
end
}}
-deploy.rbを編集して完了。
#pre{{
set :scm, 'copy'
set :copy_dir, '.'
set :tmp_dir, '/tmp'
set :copy_exclude, [ /\.log$/, %r!^files/.+! ]
}}
-copy_excludeのパターンは、 Rake::FileListの、excludeで指...
-FileList['**/*']はプロジェクトルートからの相対パスを返し...
#pre{{
set :copy_exclude, [
/^logs/,
/^tmp/,
/^vendor/
]
}}
-ドットファイル(.で始まるファイル)がコピーされないけど、...
終了行:
[[Capistrano3/deploy_via_copyする]]
&tag(Capistrano3/deploy_via_copyする/古い情報);
*目次 [#s5a45114]
#contents
*関連ページ [#nbbe1fcc]
*参考情報 [#ief49c09]
*各種方法 [#a977b9fd]
**deploy_via:copyしたい(自作gem編) [#a88c0fbe]
TODO:
-capistrano-scm-copyはtarコマンドを使っているのがちょっと...
-できれば自作gemと置き換えたい。構造は単純でcopy.rakeファ...
-該当するTar/Zip gemを使いtarコマンドを使わないようにする。
-FileListのexcludeを利用する。
**deploy_via:copyしたい(自作編) [#n43b9a84]
-デフォルトではできなくなっているので、[[Capistrano3 で d...
-Gemfileにrubyzipを追加。
#pre{{
group :deployment do
gem 'capistrano', '~> 3.0', require: false
gem 'rubyzip', require: false
end
}}
-lib/capistrano/tasks/copy.rakeを作成。上記リンクからちょ...
#pre{{
require 'zip'
Zip.setup do |c|
c.unicode_names = true
c.on_exists_proc = true
c.continue_on_exists_proc = true
end
namespace :copy do
task :check do
end
task :set_current_revision do
end
task create_release: 'release.zip' do |t|
file = t.prerequisites.first
on roles(:app) do
execute :mkdir, '-p', fetch(:tmp_dir)
upload! file, fetch(:tmp_dir)
execute :unzip, '-o', "#{fetch(:tmp_dir)}/release.z...
end
File.delete file if File.exists?(file)
end
file 'release.zip' do |t|
release_filename = File.join(Dir.pwd, t.name)
Dir.chdir fetch(:copy_dir) do
Zip::File.open(release_filename, Zip::File::CREATE)...
files = FileList['**/*']
files.exclude(*fetch(:copy_exclude)).each do |file|
zipfile.add(file, file)
end
end
end
end
end
}}
-deploy.rbを編集して完了。
#pre{{
set :scm, 'copy'
set :copy_dir, '.'
set :tmp_dir, '/tmp'
set :copy_exclude, [ /\.log$/, %r!^files/.+! ]
}}
-copy_excludeのパターンは、 Rake::FileListの、excludeで指...
-FileList['**/*']はプロジェクトルートからの相対パスを返し...
#pre{{
set :copy_exclude, [
/^logs/,
/^tmp/,
/^vendor/
]
}}
-ドットファイル(.で始まるファイル)がコピーされないけど、...
ページ名: