docker_houston 0.0.4 → 0.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 93c1ec3e45059f8a462b9e5844a7509bfa8a3179
4
- data.tar.gz: 4638e8cc88ae6afd0e1867f9a7dc760e16692056
3
+ metadata.gz: 8385fd21082fdd57412381955b2c3656e09eb393
4
+ data.tar.gz: 6c061aeb84b85f3ce4ccb8f4e450edeeeffca141
5
5
  SHA512:
6
- metadata.gz: 766610f8a772345a4ff4b69c96bd5c7f1216d910aeb1dac6ffecc4c41d2f13720fa7269c9b713901f026ca2d7297317d9eb90782c496254725c3d3425bd19433
7
- data.tar.gz: 9856ce1bc1ddc1cbc2cb3f8c91d847a0da8029ae4362858b56248bf6f892b65e8a0666d478a79db73350c3475ebb889d5f1204b55da6c26521e7ddbcd878fb20
6
+ metadata.gz: ebaa7a377aef0880deeafa8bab9deec70516c537a8bf11b4dd78683fbfdc9bdd69d68c6bee2c7ed3170c37757b9854b412c64422a39af7fe65214ca5fae7d935
7
+ data.tar.gz: 287926ec8a900b78eba0e4c34e691bb9f26670826d2f4434b6f1fb840ab1877ae3c3201c5363f7eef869e72d7e28ed66549c1e7feba8676ade40c425048d2f4c
data/README.md CHANGED
@@ -87,6 +87,8 @@ invoke 'docker:setup_db'
87
87
  invoke 'docker:build_container'
88
88
  invoke 'docker:stop'
89
89
  invoke 'docker:start'
90
+ invoke 'docker:cleanup_containers'
91
+ invoke 'docker:cleanup_images'
90
92
  invoke 'docker:notify'
91
93
 
92
94
  ```
@@ -94,7 +96,9 @@ invoke 'docker:notify'
94
96
  * Build the container for it.
95
97
  * Stop the current running containers if existed.
96
98
  * Start new container for the project.
97
- * Notifying to Team channel (TODO://)
99
+ * Clean up exited containers
100
+ * Clean up unlinked images
101
+ * Notifying to Team channel
98
102
 
99
103
 
100
104
  ### Console
@@ -127,7 +131,7 @@ The deploy message reads: "New version of #{fetch(:app_name)} has been deployed
127
131
 
128
132
  ## Contributing
129
133
 
130
- Bug reports and pull requests are welcome on GitHub at https://github.com/touchtechltd/docker_houston. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
134
+ Bug reports and pull requests are welcome on GitHub at https://github.com/alex-zige/docker_houston. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](contributor-covenant.org) code of conduct.
131
135
 
132
136
 
133
137
  ## License
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.summary = "Misson Control for docker builds."
13
13
  spec.description = "Utilities for deploy docker builds."
14
- spec.homepage = "http://www.google.com"
14
+ spec.homepage = "https://github.com/alex-zige/docker_houston"
15
15
  spec.license = "MIT"
16
16
 
17
17
  # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
@@ -5,23 +5,31 @@ rescue IndexError => e
5
5
  puts "#{e.message} (ensure :application and :repository are set in deploy.rb)"
6
6
  end
7
7
 
8
- set :app_with_stage, ->{"#{fetch(:app_name)}"}
8
+ set :app_with_stage, -> { "#{fetch(:app_name)}" }
9
9
 
10
- set :repo_url, ->{ fetch(:repository) } unless fetch(:repo_url)
10
+ set :repo_url, -> { fetch(:repository) } unless fetch(:repo_url)
11
11
 
12
- set :release_dir, ->{Pathname.new("/home/deploy/dockerised_apps/#{fetch(:app_with_stage)}/current")}
12
+ set :release_dir, -> { Pathname.new("/home/deploy/dockerised_apps/#{fetch(:app_with_stage)}/current") }
13
13
 
14
- set :shared_dir, ->{Pathname.new("/home/deploy/dockerised_apps/#{fetch(:app_with_stage)}/shared")}
14
+ set :shared_dir, -> { Pathname.new("/home/deploy/dockerised_apps/#{fetch(:app_with_stage)}/shared") }
15
15
 
16
- set :log_dir, -> {Pathname.new("/home/deploy/dockerised_apps/logs/#{fetch(:app_with_stage)}")}
16
+ set :log_dir, -> { Pathname.new("/home/deploy/dockerised_apps/logs/#{fetch(:app_with_stage)}") }
17
17
 
18
- set :app_dir, ->{fetch(:release_dir).to_s.chomp('/current')}
18
+ set :app_dir, -> { fetch(:release_dir).to_s.chomp('/current') }
19
19
 
20
20
  def exec_on_remote(command, message="Executing command on remote...", container_id='web')
21
21
  on roles :app do |server|
22
22
  ssh_cmd = "ssh -A -t #{server.user}@#{server.hostname}"
23
- puts "Executing remote command..."
24
- exec "#{ssh_cmd} 'cd #{fetch(:release_dir)} && docker-compose -p #{fetch(:app_with_stage)} run web #{command}'"
23
+ puts message
24
+ exec "#{ssh_cmd} 'cd #{fetch(:release_dir)} && docker-compose -p #{fetch(:app_with_stage)} run web #{command}'"
25
+ end
26
+ end
27
+
28
+ def exec_on_server(command, message="Executing on docker server...")
29
+ on roles :app do |server|
30
+ ssh_cmd = "ssh -A -t #{server.user}@#{server.hostname}"
31
+ puts message
32
+ exec "#{ssh_cmd} '#{command}'"
25
33
  end
26
34
  end
27
35
 
@@ -44,11 +52,13 @@ namespace :docker do
44
52
  invoke 'docker:build_container'
45
53
  invoke 'docker:stop'
46
54
  invoke 'docker:start'
55
+ invoke 'docker:cleanup_containers'
56
+ invoke 'docker:cleanup_images'
47
57
  invoke 'docker:notify'
48
58
  end
49
59
  end
50
60
 
51
- desc 'relink docker databse'
61
+ desc 'relink docker database'
52
62
  task :setup_db do
53
63
  on roles :app do
54
64
  docker_db = "#{fetch(:release_dir)}/config/database.yml.docker"
@@ -98,12 +108,12 @@ namespace :docker do
98
108
 
99
109
  desc 'Run seed_fu against remote url'
100
110
  task :seed_fu do
101
- exec_on_remote("rake db:seed_fu", "Seeding database on remote...")
111
+ exec_on_remote("bundle exec rake db:seed_fu", "Seeding database on remote...")
102
112
  end
103
113
 
104
114
  desc "Tail logs from remote dockerised app"
105
115
  task :logs do
106
- execute_on_remote "cd #{fetch(:log_dir)} && tail -f staging.log"
116
+ exec_on_remote "cd #{fetch(:log_dir)} && tail -f staging.log"
107
117
  end
108
118
 
109
119
  desc 'Notify deploy on third party IM'
@@ -112,9 +122,24 @@ namespace :docker do
112
122
  exec "rake notifier:notify[\"#{message}\"]"
113
123
  end
114
124
 
115
- desc 'Drop reseed the database'
116
- task :reseed do
117
- exec_on_remote("rake db:reset && rake db:seed_fu", "Reseeding database on remote...")
125
+ desc 'Recreate DB tables'
126
+ task :reset_db do
127
+ exec_on_remote("bundle exec rake db:setup", "Recreating database on remote...")
128
+ end
129
+
130
+ desc 'Cleanup old docker containers'
131
+ task :cleanup_containers do
132
+ exec_on_server("docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null", "Removing exited containers...")
133
+ end
134
+
135
+ desc 'Cleanup old docker images'
136
+ task :cleanup_images do
137
+ exec_on_server("docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null", "Removing unused images...")
138
+ end
139
+
140
+ desc 'Precompile assets'
141
+ task :precompile_assets do
142
+ exec_on_remote "bundle exec rake assets:precompile", "Precompiling assets..."
118
143
  end
119
144
 
120
145
  end
@@ -1,3 +1,3 @@
1
1
  module DockerHouston
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -46,6 +46,7 @@ module DockerHouston
46
46
 
47
47
  def copy_executable
48
48
  copy_file "../../../bin/docker", "bin/docker"
49
+ exec "chmod +x bin/docker"
49
50
  end
50
51
 
51
52
  def rails_4?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: docker_houston
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - alex-zige
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-05-20 00:00:00.000000000 Z
12
+ date: 2016-06-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -89,7 +89,7 @@ files:
89
89
  - lib/generators/templates/staging.rb.erb
90
90
  - lib/generators/templates/unicorn.rb
91
91
  - lib/tasks/notifier.rake
92
- homepage: http://www.google.com
92
+ homepage: https://github.com/alex-zige/docker_houston
93
93
  licenses:
94
94
  - MIT
95
95
  metadata: {}