capose 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d2591e5750c3c48278502ea9f067f0bc3c0d491f
4
+ data.tar.gz: 06dd8ff0fa00a720e23a2a02e19abf0fa1a0f82a
5
+ SHA512:
6
+ metadata.gz: 482e6c5bf895277fff76a1bb1185820d34323ff91bff806fe0d73f684c3017a418f7c3393c988e9bf55a41f4b5ea8f217aa2af64e84a9e9d3b7653e85ee9ef0c
7
+ data.tar.gz: fe2d2ece25816175ecca3371499aaf50c44a0b9d61e8c6b7c575f872aa6d4ae71645347e854d500f6b52aaa4d720abd2964216d19d8a15ec7184623fdd6d877c
@@ -0,0 +1 @@
1
+ *.gem
data/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "https://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in capistrano.gemspec
4
+ gemspec
5
+
6
+ gem "rspec"
7
+ gem "rspec-core"
8
+ gem "pry"
@@ -0,0 +1,61 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ capose (0.1.0)
5
+ capistrano (>= 3.7)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ airbrussh (1.1.2)
11
+ sshkit (>= 1.6.1, != 1.7.0)
12
+ capistrano (3.7.2)
13
+ airbrussh (>= 1.0.0)
14
+ capistrano-harrow
15
+ i18n
16
+ rake (>= 10.0.0)
17
+ sshkit (>= 1.9.0)
18
+ capistrano-harrow (0.5.3)
19
+ coderay (1.1.1)
20
+ diff-lcs (1.3)
21
+ i18n (0.8.0)
22
+ method_source (0.8.2)
23
+ net-scp (1.2.1)
24
+ net-ssh (>= 2.6.5)
25
+ net-ssh (4.0.1)
26
+ pry (0.10.4)
27
+ coderay (~> 1.1.0)
28
+ method_source (~> 0.8.1)
29
+ slop (~> 3.4)
30
+ rake (12.0.0)
31
+ rspec (3.5.0)
32
+ rspec-core (~> 3.5.0)
33
+ rspec-expectations (~> 3.5.0)
34
+ rspec-mocks (~> 3.5.0)
35
+ rspec-core (3.5.4)
36
+ rspec-support (~> 3.5.0)
37
+ rspec-expectations (3.5.0)
38
+ diff-lcs (>= 1.2.0, < 2.0)
39
+ rspec-support (~> 3.5.0)
40
+ rspec-mocks (3.5.0)
41
+ diff-lcs (>= 1.2.0, < 2.0)
42
+ rspec-support (~> 3.5.0)
43
+ rspec-support (3.5.0)
44
+ slop (3.6.0)
45
+ sshkit (1.11.5)
46
+ net-scp (>= 1.1.2)
47
+ net-ssh (>= 2.8.0)
48
+
49
+ PLATFORMS
50
+ ruby
51
+
52
+ DEPENDENCIES
53
+ bundler (~> 1.4)
54
+ capose!
55
+ pry
56
+ rake
57
+ rspec
58
+ rspec-core
59
+
60
+ BUNDLED WITH
61
+ 1.12.5
@@ -0,0 +1,4 @@
1
+ # Capose - A capistrano addon to use with docker-compose
2
+
3
+ This gem is a lighter version of https://github.com/netguru/capistrano-docker that aims to work only with docker-compose. The idea is to have a minimal possible capistrano configuration and use the power of docker-compose to build images and run containers.
4
+
@@ -0,0 +1,21 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = 'capose'
6
+ spec.version = '0.1.0'
7
+ spec.authors = ["Jacek Jakubik"]
8
+ spec.email = ["jacek.jakubik@netguru.pl"]
9
+ spec.description = %q{Docker-Compose support for Capistrano 3.x}
10
+ spec.summary = %q{Docker-Compose support for Capistrano 3.x}
11
+ spec.homepage = 'https://github.com/netguru/capose'
12
+ spec.license = 'MIT'
13
+
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
16
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
17
+ spec.require_paths = ['lib']
18
+
19
+ spec.add_runtime_dependency 'capistrano', '~> 3.7'
20
+ spec.add_development_dependency 'bundler', '~> 1.4'
21
+ end
@@ -0,0 +1,73 @@
1
+ namespace :deploy do
2
+ after :updated, 'capose:deploy'
3
+ end
4
+
5
+ namespace :capose do
6
+ def _project
7
+ return "" if fetch(:capose_project).nil?
8
+ "-p #{fetch(:capose_project)}"
9
+ end
10
+
11
+ def _files
12
+ cmd = []
13
+
14
+ Array(fetch(:capose_file)).each { |file| cmd << ["-f #{file}"] }
15
+
16
+ cmd.join(" ")
17
+ end
18
+
19
+ def _command(command)
20
+ [_project, _files, command].join(" ")
21
+ end
22
+
23
+ task :command do
24
+ _cmd = ENV["CAPOSE_COMMAND"]
25
+ if _cmd.nil?
26
+ puts "Usage: CAPOSE_COMMAND='command' bundle exec cap #{fetch(:stage)} capose:command"
27
+ exit 1
28
+ end
29
+
30
+ on roles(fetch(:capose_role)) do
31
+ within current_path do
32
+ execute :"docker-compose", _command(ENV["CAPOSE_COMMAND"])
33
+ end
34
+ end
35
+ end
36
+
37
+ task :stop do
38
+ on roles(fetch(:capose_role)) do
39
+ within current_path do
40
+ execute :"docker-compose", _command("stop")
41
+ end
42
+ end
43
+ end
44
+
45
+ task :deploy do
46
+ on roles(fetch(:capose_role)) do
47
+ within release_path do
48
+ fetch(:capose_copy).each do |file|
49
+ execute :cp, " -aR #{shared_path}/#{file} #{release_path}/#{file}"
50
+ end
51
+ end
52
+ end
53
+
54
+ on roles(fetch(:capose_role)) do
55
+ within release_path do
56
+ fetch(:capose_commands).each do |command|
57
+ execute :"docker-compose", _command(command)
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+
64
+ namespace :load do
65
+ task :defaults do
66
+ set :capose_role, -> { :web }
67
+ set :capose_copy, -> { [] }
68
+ set :capose_project, -> { fetch(:application) }
69
+ set :capose_file, -> { ["docker-compose-#{fetch(:stage)}.yml"] }
70
+
71
+ set :capose_commands, -> { ["build", "up -d"] }
72
+ end
73
+ end
metadata ADDED
@@ -0,0 +1,78 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capose
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jacek Jakubik
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-02-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: capistrano
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.4'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.4'
41
+ description: Docker-Compose support for Capistrano 3.x
42
+ email:
43
+ - jacek.jakubik@netguru.pl
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - ".gitignore"
49
+ - Gemfile
50
+ - Gemfile.lock
51
+ - README.md
52
+ - capose.gemspec
53
+ - lib/capose.rb
54
+ homepage: https://github.com/netguru/capose
55
+ licenses:
56
+ - MIT
57
+ metadata: {}
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.4.5.1
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: Docker-Compose support for Capistrano 3.x
78
+ test_files: []