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 +4 -4
- data/README.md +6 -2
- data/docker_houston.gemspec +1 -1
- data/lib/docker_houston/capistrano.rb +39 -14
- data/lib/docker_houston/version.rb +1 -1
- data/lib/generators/docker_houston/install_generator.rb +1 -0
- metadata +3 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8385fd21082fdd57412381955b2c3656e09eb393
|
|
4
|
+
data.tar.gz: 6c061aeb84b85f3ce4ccb8f4e450edeeeffca141
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
*
|
|
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/
|
|
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
|
data/docker_houston.gemspec
CHANGED
|
@@ -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 = "
|
|
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
|
-
|
|
24
|
-
|
|
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
|
|
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
|
-
|
|
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 '
|
|
116
|
-
task :
|
|
117
|
-
exec_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
|
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
|
+
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-
|
|
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:
|
|
92
|
+
homepage: https://github.com/alex-zige/docker_houston
|
|
93
93
|
licenses:
|
|
94
94
|
- MIT
|
|
95
95
|
metadata: {}
|