dockersitter 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/command_router.rb +2 -1
- data/lib/commands/create.rb +17 -14
- data/lib/commands/increment.rb +38 -0
- data/lib/docker_mgr/version.rb +1 -1
- data/lib/templates/Dockerfile.erb +1 -1
- data/lib/templates/build.erb +3 -0
- data/lib/templates/docker-compose.yml.erb +2 -2
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d646c9d7f08f2815560d95a646601eb2301456c
|
4
|
+
data.tar.gz: fc5c05e4a5d88c75a0b0382cc9998af711921e90
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6b34336aa58dea1b12d07a3996df6e04eb3804994a706cbd20690ef775c5d67f9b3589f7ce6b51ccb1f9375697d55f1c0e9caa1a9e10621900b35edfbd2879e9
|
7
|
+
data.tar.gz: 4dca11d8663e2384aacf72aeea88dd7ba6bc222df0bae6d5ef1f72f99f7c8f42dc2a6c04be634bca1031fc45d192c6269be6e4518894bf8d71b21ee64ee37415
|
data/lib/command_router.rb
CHANGED
@@ -6,6 +6,7 @@ require 'commands/generate_backup_scripts'
|
|
6
6
|
require 'commands/backup_app.rb'
|
7
7
|
require 'commands/restore_app.rb'
|
8
8
|
require 'commands/start.rb'
|
9
|
+
require 'commands/increment.rb'
|
9
10
|
require 'util'
|
10
11
|
require 'fileutils'
|
11
12
|
|
@@ -20,6 +21,6 @@ module CommandRouter
|
|
20
21
|
register BackupApp,'backup','backup','creates a backup of the given app.'
|
21
22
|
register RestoreApp, 'restore','restore','restores an app.'
|
22
23
|
register Start, 'start','start','starts one or multiple apps. If no apps are given, all apps will be started.'
|
23
|
-
|
24
|
+
register Increment, 'increment','increment','increments the version of an image.'
|
24
25
|
end
|
25
26
|
end
|
data/lib/commands/create.rb
CHANGED
@@ -11,35 +11,35 @@ class Create < Thor
|
|
11
11
|
File.expand_path('../templates',__dir__)
|
12
12
|
end
|
13
13
|
|
14
|
-
|
14
|
+
option :base,
|
15
15
|
:type => :string,
|
16
16
|
:desc => "the image which the app is based on.",
|
17
|
-
:
|
17
|
+
:aliases => 'b',
|
18
18
|
:default => "ubuntu:14.04"
|
19
19
|
|
20
20
|
class_option :env,
|
21
21
|
:type => :array,
|
22
22
|
:desc => 'additional environment variables',
|
23
|
-
:
|
23
|
+
:aliases => 'e',
|
24
24
|
:default => []
|
25
25
|
|
26
26
|
class_option :packages,
|
27
27
|
:type => :array,
|
28
28
|
:desc => 'additional packages to install',
|
29
|
-
:
|
29
|
+
:aliases => 'p',
|
30
30
|
:default => []
|
31
31
|
|
32
|
-
|
33
|
-
:type => :array,
|
34
|
-
:desc => 'the volumes your data-container will mount',
|
35
|
-
:alias => 'v',
|
36
|
-
:default => ["/var"]
|
37
|
-
|
32
|
+
|
38
33
|
desc "app APP_NAME", "create a new app."
|
39
34
|
option :dockerfile,
|
40
35
|
:type => :boolean,
|
41
36
|
:desc => 'create a dockerfile for the app',
|
42
37
|
:aliases => 'd'
|
38
|
+
option :volumes,
|
39
|
+
:type => :array,
|
40
|
+
:desc => 'the volumes your data-container will mount',
|
41
|
+
:aliases => 'v',
|
42
|
+
:default => ["/var"]
|
43
43
|
def app(app_name)
|
44
44
|
@app_name = app_name
|
45
45
|
@user_email = extract_email
|
@@ -66,18 +66,21 @@ class Create < Thor
|
|
66
66
|
def image(image_name)
|
67
67
|
@user_email = extract_email
|
68
68
|
@user_name = extract_name
|
69
|
-
image_path = "#{base_images_dir}/#{image_name}"
|
69
|
+
image_path = "#{base_images_dir}/#{image_name}/v1.0"
|
70
70
|
empty_directory "#{image_path}/administration/installation"
|
71
71
|
template "Dockerfile.erb","#{image_path}/Dockerfile"
|
72
72
|
unless options[:packages].empty?
|
73
73
|
options[:packages].each do |package|
|
74
|
-
FileUtils.
|
74
|
+
FileUtils.cp("#{install_dir}/install_#{package}.sh",
|
75
75
|
"#{image_path}/administration/installation/install_#{package}.sh")
|
76
76
|
end
|
77
77
|
|
78
|
-
FileUtils.
|
78
|
+
FileUtils.cp("#{install_dir}/scriptrunner.sh",
|
79
79
|
"#{image_path}/administration/scriptrunner.sh")
|
80
80
|
end
|
81
|
-
|
81
|
+
@image_name = image_name
|
82
|
+
@version = "1.0"
|
83
|
+
template "build.erb", "#{image_path}/build.sh"
|
84
|
+
FileUtils.chmod 0755, "#{image_path}/build.sh"
|
82
85
|
end
|
83
86
|
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'thor/group'
|
2
|
+
require 'fileutils'
|
3
|
+
|
4
|
+
class Increment < Thor::Group
|
5
|
+
include Thor::Actions
|
6
|
+
include DockerMgr::Util
|
7
|
+
|
8
|
+
def self.source_root
|
9
|
+
File.expand_path('../templates',__dir__)
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
class_option :minor,:aliases => 'm'
|
14
|
+
argument :image_name,:type => :string
|
15
|
+
|
16
|
+
def increment
|
17
|
+
last_version_dir = Dir.entries("#{base_images_dir}/#{@image_name}")
|
18
|
+
.select {|e| e != "." && e != ".."}
|
19
|
+
.max {|a,b| a[1..-1].to_f <=> b[1..-1].to_f}
|
20
|
+
last_number = last_version_dir[1..-1].to_f
|
21
|
+
|
22
|
+
new_number = options[:minor] ? last_number + 0.1 : last_number.to_i + 1.0
|
23
|
+
new_number_format = '%.1f' % new_number
|
24
|
+
empty_directory "#{base_images_dir}/#{@image_name}/v#{new_number_format}"
|
25
|
+
FileUtils.cp_r "#{base_images_dir}/#{@image_name}/#{last_version_dir}/.",
|
26
|
+
"#{base_images_dir}/#{@image_name}/v#{new_number_format}"
|
27
|
+
|
28
|
+
if File.exist? "#{base_images_dir}/#{@image_name}/v#{new_number_format}/build.sh"
|
29
|
+
FileUtils.rm "#{base_images_dir}/#{@image_name}/v#{new_number_format}/build.sh"
|
30
|
+
end
|
31
|
+
@version = new_number_format
|
32
|
+
template 'build.erb',"#{base_images_dir}/#{@image_name}/v#{new_number_format}/build.sh"
|
33
|
+
FileUtils.chmod 0755, "#{base_images_dir}/#{@image_name}/v#{new_number_format}/build.sh"
|
34
|
+
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
data/lib/docker_mgr/version.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
app:
|
2
|
-
<%if options[:
|
2
|
+
<%if options[:base]%>image: <%=options[:base]%> <%else%>build: .<%end%>
|
3
3
|
volumes_from:
|
4
4
|
- appdata
|
5
5
|
environment:
|
@@ -7,7 +7,7 @@ app:
|
|
7
7
|
<%options[:env].each do | var |%><%=var.gsub('=',': ')%>
|
8
8
|
<%end%>
|
9
9
|
appdata:
|
10
|
-
<%if options[:
|
10
|
+
<%if options[:base]%>image: <%=options[:base]%> <%else%>build: .<%end%>
|
11
11
|
volumes:
|
12
12
|
<%options[:volumes].each do |volume|-%>
|
13
13
|
- <%=volume%>
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dockersitter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rene Richter
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- lib/commands/create.rb
|
124
124
|
- lib/commands/delete.rb
|
125
125
|
- lib/commands/generate_backup_scripts.rb
|
126
|
+
- lib/commands/increment.rb
|
126
127
|
- lib/commands/init.rb
|
127
128
|
- lib/commands/restore_app.rb
|
128
129
|
- lib/commands/start.rb
|
@@ -144,6 +145,7 @@ files:
|
|
144
145
|
- lib/templates/backup.erb
|
145
146
|
- lib/templates/before_all.erb
|
146
147
|
- lib/templates/before_all_restore.erb
|
148
|
+
- lib/templates/build.erb
|
147
149
|
- lib/templates/docker-compose.yml.erb
|
148
150
|
- lib/templates/restore.erb
|
149
151
|
- lib/util.rb
|