dockersitter 0.2.2 → 0.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b66d83198523735ec8b22316d22c0f3562573f40
4
- data.tar.gz: 8428081f2e8a8f140bb3157de233e46af7a4e7c4
3
+ metadata.gz: ecd7654d00eb850033444a96ff9741164b1981b5
4
+ data.tar.gz: a7c0da589330e67c89179fa79330d85b3323cc66
5
5
  SHA512:
6
- metadata.gz: 32db508f80366bf7a22f4f903c80edcffc7536ad5b586a1185cc68bc6d78f6cbe152a45aca92fa8e3ca6e0becaa9c63b0447067edabf0c617d82eb3c623ad603
7
- data.tar.gz: dd3798c4870e519974e8c63290f5ebc3f53f154f32b32711a6d9d662270fffeac476efb4c122a7ecb205d6a1fdf05161fb240bf8328d670833b28fd3a4becbf4
6
+ metadata.gz: 56dd3526fb7ed823669cfafa3bc767728d6da621ad407f2f58ceead9740651330070ee86a4742f4c8573a53cef143ad5ff584d2fdf8ed7338246c8b7bb6e11bb
7
+ data.tar.gz: 741f14abc3f287116e67acb17256b86ef0fe33813f894007b8390c00f04d82e44215a2d8c0d661324fa2997b6a25ec7e41bde04eb6cd528d02e6af9ff9a954b7
data/.gitignore CHANGED
@@ -2,3 +2,4 @@ Gemfile.lock
2
2
  html/
3
3
  pkg/
4
4
  vendor/cache/*.gem
5
+ config.yml
data/bin/dockersitter CHANGED
@@ -2,5 +2,4 @@
2
2
  require 'command_router'
3
3
  require 'thor'
4
4
 
5
-
6
5
  CommandRouter::Main.start ARGV
@@ -40,15 +40,26 @@ class Create < Thor
40
40
  :desc => 'the volumes your data-container will mount',
41
41
  :aliases => 'v',
42
42
  :default => ["/var"]
43
+ option :cert,
44
+ :desc => "creates a ssl certificate for this app",
45
+ :aliases => 'c'
46
+ option :subdomain,
47
+ :desc => "the subdomain for this app",
48
+ :type => :string
49
+
43
50
  def app(app_name)
51
+ subdomain = options[:subdomain] ? options[:subdomain] : app_name.gsub(/\s/,"-").downcase
52
+ puts config[:host]
53
+ @domain = "#{subdomain}.#{config[:host]}"
44
54
  @app_name = app_name
45
- @user_email = extract_email
46
- @user_name = extract_name
55
+ @user_email = config[:email]
56
+ @user_name = config[:name]
47
57
  app_path = "#{apps_dir}/#{@app_name}"
48
58
  template "docker-compose.yml.erb","#{app_path}/docker-compose.yml"
49
59
  empty_directory "#{app_path}/administration/installation"
50
60
  empty_directory "#{app_path}/administration/hooks/backup.d"
51
61
  empty_directory "#{app_path}/administration/hooks/restore.d"
62
+
52
63
  template "Dockerfile.erb","#{app_path}/Dockerfile" if options[:dockerfile]
53
64
  unless options[:packages].empty?
54
65
  options[:packages].each do |package|
@@ -58,8 +69,14 @@ class Create < Thor
58
69
 
59
70
  FileUtils.ln("#{install_dir}/scriptrunner.sh",
60
71
  "#{app_path}/administration/scriptrunner.sh")
72
+
61
73
  end
62
74
  append_to_file "#{routine_dir}/backup_routine", "docker_mgr backup_app #{app_name}"
75
+ create_file "#{vhost_dir}/#{app_name}"
76
+ if options[:cert]
77
+ app_cert = "#{cert_dir}/#{@domain}"
78
+ puts `openssl req -x509 -newkey rsa:4096 -subj '/CN=#{config[:host]}' -nodes -keyout #{app_cert}.key -out #{app_cert}.crt`
79
+ end
63
80
  end
64
81
 
65
82
  desc "image IMAGE_NAME","creates a new image."
data/lib/commands/init.rb CHANGED
@@ -14,6 +14,8 @@ class Init < Thor::Group
14
14
  empty_directory "docker/base_images"
15
15
  directory "admin","docker/admin"
16
16
  empty_directory "docker/ci_runner"
17
+ empty_directory "docker/proxy/ca_certs"
18
+ empty_directory "docker/proxy/vhosts.d"
17
19
  puts `git init docker`
18
20
  end
19
21
 
@@ -1,4 +1,4 @@
1
1
  module DockerMgr
2
2
  # docker_mgr version
3
- VERSION = "0.2.2"
3
+ VERSION = "0.3.0"
4
4
  end
@@ -3,7 +3,7 @@ app:
3
3
  volumes_from:
4
4
  - appdata
5
5
  environment:
6
- VIRTUAL_HOST: <%=@app_name%>.rene-richter.de
6
+ VIRTUAL_HOST: <%=@domain%>
7
7
  <%options[:env].each do | var |%><%=var.gsub('=',': ')%>
8
8
  <%end%>
9
9
  appdata:
data/lib/util.rb CHANGED
@@ -18,6 +18,7 @@ module DockerMgr
18
18
  end
19
19
 
20
20
 
21
+
21
22
  def backup_dir
22
23
  "#{root_dir}/backup"
23
24
  end
@@ -47,6 +48,37 @@ module DockerMgr
47
48
  "#{admin_dir}/installation_scripts"
48
49
  end
49
50
 
51
+ def proxy_dir
52
+ "#{root_dir}/proxy"
53
+ end
54
+
55
+
56
+
57
+ def cert_dir
58
+ "#{proxy_dir}/ca_certs"
59
+ end
60
+
61
+ def vhost_dir
62
+ "#{proxy_dir}/vhost.d"
63
+ end
64
+
65
+ def config
66
+ if File.exist? "#{admin_dir}/config.yml"
67
+ YAML.load_file "#{admin_dir}/config.yml"
68
+ else
69
+ result = Hash.new
70
+ result[:email] = extract_email
71
+ result[:name] = extract_name
72
+ host = "#{result[:name].gsub(/\s/,'-').downcase}.de"
73
+ puts "pleas enter your host-name (#{host})"
74
+ choice = STDIN.gets.chomp
75
+ result[:host] = choice.empty? ? host : choice
76
+ File.write "#{admin_dir}/config.yml", result.to_yaml
77
+ result
78
+ end
79
+ end
80
+
81
+
50
82
  def extract_date(entry)
51
83
  /_\d+\./.match(entry).to_s.chop[1..-1].to_i
52
84
  end
@@ -98,12 +130,11 @@ module DockerMgr
98
130
 
99
131
 
100
132
  def extract_git_variable(name)
101
- config = `git config --list`
102
- result = config.lines.grep(/#{Regexp.quote(name)}/).map{|e| e.split('=')[1].chomp }.first
133
+ git_config = `git config --list`
134
+ result = git_config.lines.grep(/#{Regexp.quote(name)}/).map{|e| e.split('=')[1].chomp }.first
103
135
  unless result
104
136
  puts "please enter your #{name.split('.')[1]}"
105
137
  result = STDIN.gets.chomp
106
- `git config --global #{name} #{result}`
107
138
  end
108
139
  result
109
140
  end
data/test.rb ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'yaml'
4
+
5
+
6
+ if File.exist? "config.yml"
7
+ config = YAML.load_file("config.yml")
8
+ puts config.inspect
9
+ else
10
+ config = Hash.new
11
+ puts "pleas enter your email"
12
+ config[:email] = STDIN.gets.chomp
13
+ puts "please enter your name"
14
+ config[:name] = STDIN.gets.chomp
15
+ puts "pleas enter your host-name (leave blank if you don't have one)"
16
+ config[:host] = STDIN.gets.chomp
17
+ File.write "config.yml",config.to_yaml
18
+ end
19
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockersitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Rene Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2015-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -151,6 +151,7 @@ files:
151
151
  - lib/util.rb
152
152
  - spec/docker_mgr_spec.rb
153
153
  - spec/spec_helper.rb
154
+ - test.rb
154
155
  homepage: https://rubygems.org/gems/docker-mgr
155
156
  licenses:
156
157
  - GPL