dockersitter 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ce908ad9ece66790ea14cee9c0521058e856de75
4
- data.tar.gz: 6725a7bbf1c16a1fbb877e06ff42a1bc3eb862e5
3
+ metadata.gz: c2aa31dc030ca5da6c465bf31e3e8658ce57cafa
4
+ data.tar.gz: d63ce2038c4617bfff1faa73763c95b9e3f0dfe3
5
5
  SHA512:
6
- metadata.gz: 9f7d05560345c1a52464c36720b96476932407f96381f0f31f395880f617b8cbba819c977cb95c6ff98f9816e26fb6abc65e7ec023418706d4d4d757ade9f529
7
- data.tar.gz: 290b08eef9ff70812e5eb03133e742f44520e4afd99840a46851c8941581297c2bacfc8fcff518b5acd656c752f99bee5123d86b8ebb00dcef32c1d50b2f3de4
6
+ metadata.gz: d828014ebd3a3d5feef01be03a1e20e93df8685970ef8f4397cb6c3f55422ef6d44dee157820137a62909c223056b2ee53bd4e9b1d091fb3957e567e09260d16
7
+ data.tar.gz: 46927e3ecfc850320a1921a0febf9d1a684f1c61d91c3135ccf4439541d0caa6c2d9d866fb6d3586fee72e3438c89b27e9d90ed3c0a78ae99dd3219978102ecf
data/.gitignore CHANGED
@@ -3,3 +3,5 @@ html/
3
3
  pkg/
4
4
  vendor/cache/*.gem
5
5
  config.yml
6
+
7
+ **/*.DS_Store
@@ -49,29 +49,58 @@ class Create < Thor
49
49
  empty_directory "#{app_path}/administration/installation"
50
50
  empty_directory "#{app_path}/administration/hooks/backup.d"
51
51
  empty_directory "#{app_path}/administration/hooks/restore.d"
52
-
53
52
  template "Dockerfile.erb","#{app_path}/Dockerfile" if options[:dockerfile]
54
- unless options[:packages].empty?
55
- options[:packages].each do |package|
56
- FileUtils.ln("#{install_dir}/install_#{package}.sh",
57
- "#{app_path}/administration/installation/install_#{package}.sh")
58
- end
59
-
60
- FileUtils.ln("#{install_dir}/scriptrunner.sh",
61
- "#{app_path}/administration/scriptrunner.sh")
62
-
63
- end
64
- append_to_file "#{routine_dir}/backup_routine", "docker_mgr backup_app #{app_name}"
53
+ add_packages(app_path,options[:packages]) unless options[:packages].empty?
54
+ append_to_file "#{routine_dir}/backup_routine", "dockersitter backup_app #{app_name}"
65
55
  create_file "#{vhost_dir}/#{@domain}"
66
56
  if options[:cert]
67
57
  FileUtils.cd "#{admin_dir}/ca" do
68
- puts "#{admin_dir}/ca/sign.sh"
69
58
  puts `./sign.sh #{@domain}`
70
59
  end
71
60
  chmod "#{proxy_dir}/certs/#{@domain}.key",0600
72
61
  end
73
62
  end
74
-
63
+
64
+ desc "runner RUNNER_NAME", "create a new runner."
65
+ option :dockerfile,:type => :boolean,
66
+ :desc => 'create a dockerfile for the app',:aliases => 'd'
67
+ option :volumes,:type => :array,
68
+ :desc => 'the volumes your data-container will mount',:aliases => 'v',
69
+ :default => ["./data:/data"]
70
+ option :base,
71
+ :type => :string,
72
+ :desc => "the image which the runner is based on.",
73
+ :aliases => 'b',
74
+ :default => "runner_base:1.0"
75
+ option :serve_name,
76
+ :type => :string,
77
+ :desc => 'the ci-server, the runner belongs to',
78
+ :aliases => 's',
79
+ :default => "gitlab.#{config[:host]}/ci"
80
+ option :token,
81
+ :type => :string,
82
+ :desc => 'the token to register this runner',
83
+ :aliases => 't',
84
+ :required => true
85
+ def runner(runner_name,token)
86
+ @app_name = runner_name
87
+ @user_email,@user_name = config.values_at(:email,:name)
88
+ @base = options[:base]
89
+ runner_path = "#{runner_dir}/#{@app_name}"
90
+ template "docker-compose.yml.erb","#{runner_path}/docker-compose.yml"
91
+ empty_directory "#{runner_path}/administration/installation"
92
+ template "Dockerfile.erb","#{app_path}/Dockerfile" if options[:dockerfile]
93
+ add_packages(runner_path,options[:packages]) unless options[:packages].empty?
94
+ FileUtils.cd(runner_path) do
95
+ command = %Q(register --non-interactive
96
+ --url "https://#{options['server_name']}"
97
+ --registration-token "#{options['token']}"
98
+ --description "multi-runner"
99
+ --executor "shell")
100
+ puts `docker-compose run service #{command}`
101
+ end
102
+ end
103
+
75
104
  desc "image IMAGE_NAME","creates a new image."
76
105
  def image(image_name)
77
106
  @user_email,@user_name = config.values_at(:email,:name)
@@ -79,21 +108,12 @@ class Create < Thor
79
108
  image_path = "#{base_images_dir}/#{image_name}/v1.0"
80
109
  empty_directory "#{image_path}/administration/installation"
81
110
  template "Dockerfile.erb","#{image_path}/Dockerfile"
82
- unless options[:packages].empty?
83
- options[:packages].each do |package|
84
- FileUtils.cp("#{install_dir}/install_#{package}.sh",
85
- "#{image_path}/administration/installation/install_#{package}.sh")
86
- end
87
-
88
- FileUtils.cp("#{install_dir}/scriptrunner.sh",
89
- "#{image_path}/administration/scriptrunner.sh")
90
- FileUtils.cp("#{admin_dir}/trust.sh",
91
- "#{image_path}/administration/trust.sh")
92
- empty_directory("#{image_path}/administration/certificates")
93
- end
111
+ add_packages(image_path) unless options[:packages].empty?
112
+ add_trust(image_path)
94
113
  @image_name = image_name
95
114
  @version = "1.0"
96
115
  template "build.erb", "#{image_path}/build.sh"
97
116
  FileUtils.chmod 0755, "#{image_path}/build.sh"
98
117
  end
118
+
99
119
  end
@@ -12,7 +12,7 @@ class Delete < Thor
12
12
  choice = ask "do you want to remove #{@app_name}? (y,N)"
13
13
  abort "aborting" unless choice == 'y'
14
14
  FileUtils.cd "#{apps_dir}/#{@app_name}" do
15
- puts `echo y | sudo docker-compose rm`
15
+ puts `docker-compose -f rm`
16
16
  end
17
17
  puts `tar -zcf #{attic_dir}/#{@app_name}.tar -C #{apps_dir} #{@app_name}`
18
18
  FileUtils.rm_rf "#{apps_dir}/#{@app_name}"
data/lib/commands/init.rb CHANGED
@@ -20,36 +20,51 @@ class Init < Thor::Group
20
20
  empty_directory "docker/proxy/certs"
21
21
  empty_directory "docker/proxy/vhosts.d"
22
22
  copy_file "gitignore","docker/.gitignore"
23
+ end
24
+
25
+ def create_ca
23
26
  FileUtils.cd 'docker/admin/ca' do
24
27
  puts `openssl req -x509 -newkey rsa:4096 -keyout rootCA.key -out rootCA.crt -days 7800 -sha256`
25
28
  end
26
29
  chmod 'docker/admin/ca/rootCA.key',0600
27
30
  chmod 'docker/admin/ca/sign.sh',0755
28
- puts `git init docker`
29
31
  FileUtils.cd 'docker' do
30
32
  generate_ca_installer
31
- image_name = 'base'
32
- @user_email,@user_name = config.values_at(:email,:name)
33
- image_path = "#{base_images_dir}/#{image_name}/v1.0"
33
+ end
34
+ end
35
+
36
+ def init_git
37
+ puts `git init docker`
38
+ end
39
+
40
+ def create_base_image
41
+ @user_email,@user_name = config.values_at(:email,:name)
42
+ image_name = 'base'
43
+ image_path = "#{base_images_dir}/#{image_name}/v1.0"
44
+ @image_name = image_name
45
+ @version = "1.0"
46
+ @base = "ubuntu:14.04"
47
+ create_image(image_path,'curl','git')
48
+ end
49
+
50
+ def create_base_runner
51
+ @image_name = 'runner_base'
52
+ image_path = "#{base_images_dir}/#{@image_name}/v1.0"
53
+ @version = "1.0"
54
+ @base = "ayufan/gitlab-ci-multi-runner:latest"
55
+ create_image(image_path,'java','node','ruby','ruby_buildtools','node_buildtools')
56
+ end
57
+
58
+ no_tasks do
59
+ def create_image(image_path,*packages)
34
60
  empty_directory "#{image_path}/administration/installation"
35
- @base = "ubuntu:14.04"
36
61
  template "Dockerfile.erb","#{image_path}/Dockerfile"
37
- %w(curl git).each do |package|
38
- FileUtils.cp("#{install_dir}/install_#{package}.sh",
39
- "#{image_path}/administration/installation/install_#{package}.sh")
40
- end
41
-
42
- FileUtils.cp("#{install_dir}/scriptrunner.sh",
43
- "#{image_path}/administration/scriptrunner.sh")
62
+ add_packages(image_path,*packages)
44
63
  FileUtils.cp("#{admin_dir}/trust.sh","#{image_path}/administration/trust.sh")
45
64
  FileUtils.mkdir("#{image_path}/administration/certificates")
46
65
  FileUtils.cp("#{admin_dir}/ca/rootCA.crt","#{image_path}/administration/certificates/rootCA.crt")
47
- @image_name = image_name
48
- @version = "1.0"
49
66
  template "build.erb", "#{image_path}/build.sh"
50
67
  FileUtils.chmod 0755, "#{image_path}/build.sh"
51
68
  end
52
-
53
-
54
69
  end
55
70
  end
@@ -51,6 +51,6 @@ class RestoreApp < Thor::Group
51
51
  puts exec_hook(@app_name,"restore","after_all")
52
52
  end
53
53
 
54
- `sudo rm -rf #{app_backup_tmp_dir}`
54
+ `rm -rf #{app_backup_tmp_dir}`
55
55
  end
56
56
  end
@@ -22,7 +22,7 @@ class Start < Thor::Group
22
22
  def start_app(app_name)
23
23
  app_path = "#{apps_dir}/#{app_name}"
24
24
  FileUtils.cd app_path do
25
- puts `sudo docker-compose up -d`
25
+ puts `docker-compose up -d`
26
26
  end
27
27
  end
28
28
  end
@@ -1,4 +1,4 @@
1
1
  module DockerMgr
2
2
  # docker_mgr version
3
- VERSION = "0.7.0"
3
+ VERSION = "0.8.0"
4
4
  end
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ npm install -g bower grunt gulp
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+
4
+ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
5
+
6
+ curl -sSL https://get.rvm.io | bash -s stable --ruby
7
+
8
+
@@ -0,0 +1,2 @@
1
+ #!/bin/bash
2
+ gem install bundler rake
@@ -13,7 +13,6 @@ if [ $LAST_CHAR != "/" ]; then
13
13
  DIR=$DIR/;
14
14
  fi
15
15
 
16
- for f in $DIR*
17
- do
16
+ for f in $(ls $DIR*| sort -t _ -k 1 -g); do
18
17
  sh $f;
19
18
  done
data/lib/util.rb CHANGED
@@ -31,6 +31,10 @@ module DockerMgr
31
31
  def base_images_dir
32
32
  "#{root_dir}/base_images"
33
33
  end
34
+
35
+ def runner_dir
36
+ "#{root_dir}/ci_runner"
37
+ end
34
38
 
35
39
 
36
40
  def attic_dir
@@ -167,7 +171,19 @@ module DockerMgr
167
171
  end
168
172
  end
169
173
 
170
-
174
+ def add_packages(path,*packages)
175
+ packages.each_with_index do |package,index|
176
+ FileUtils.cp("#{install_dir}/install_#{package}.sh",
177
+ "#{path}/administration/installation/#{index}_install_#{package}.sh")
178
+ end
179
+ FileUtils.cp("#{install_dir}/scriptrunner.sh",
180
+ "#{path}/administration/scriptrunner.sh")
181
+ end
182
+ def add_trust(path)
183
+ FileUtils.cp("#{admin_dir}/trust.sh",
184
+ "#{path}/administration/trust.sh")
185
+ empty_directory("#{path}/administration/certificates")
186
+ end
171
187
 
172
188
  end
173
189
  end
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.7.0
4
+ version: 0.8.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-20 00:00:00.000000000 Z
11
+ date: 2015-10-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -119,7 +119,6 @@ files:
119
119
  - gemspec.yml
120
120
  - install_certificate.tar
121
121
  - lib/command_router.rb
122
- - lib/commands/.generate.rb.swp
123
122
  - lib/commands/backup_app.rb
124
123
  - lib/commands/config.rb
125
124
  - lib/commands/create.rb
@@ -142,6 +141,9 @@ files:
142
141
  - lib/templates/admin/installation_scripts/install_glassfish.sh
143
142
  - lib/templates/admin/installation_scripts/install_java.sh
144
143
  - lib/templates/admin/installation_scripts/install_node.sh
144
+ - lib/templates/admin/installation_scripts/install_node_buildtools.sh
145
+ - lib/templates/admin/installation_scripts/install_ruby.sh
146
+ - lib/templates/admin/installation_scripts/install_ruby_buildtools.sh
145
147
  - lib/templates/admin/installation_scripts/install_rust.sh
146
148
  - lib/templates/admin/installation_scripts/scriptrunner.sh
147
149
  - lib/templates/admin/routines/backup_routine
Binary file