dockerun 0.1.14 → 0.1.16

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
  SHA256:
3
- metadata.gz: 6626fb24f14182ca40924b86c645115f4a18d14da1d48cfd9832fb85b7aebf47
4
- data.tar.gz: 4a19edb06eb072198af2ee92db3a6aa7e3d086ce3057940530abd5379defcc54
3
+ metadata.gz: 8dcb623a392a05026de03f0ed5269e571f61301b5e987b13fffdf07158925748
4
+ data.tar.gz: bb83b3023ebec5b7813edb7f33b92800e1cdc6f02bc10cd38f72ea3b8b64b5c7
5
5
  SHA512:
6
- metadata.gz: 3e0f07f26555f30b7fa03ae2e17f84adb3a1430db7ce1d8ad6ae228e2604f896d00744ec7c56fc90294e07d1dfc115ee9782b6035975615d7383cb7d2a831334
7
- data.tar.gz: d623e2f25169ee8a137c14b8aaeac5192f71f1e836b9740d3d93956e530338de854497ae752a1ea8105b92bf1c7f500b8d22353e3ff2308d55ca6e9fc3d2a182
6
+ metadata.gz: c7d46fcc6424c9e50cd675f1396647f1f206997becd2d5594a71d060b58cf4d140a24ba20fec18663f9cd9f0465679ec78f42a33000af964dbbb66b7e1a8ede3
7
+ data.tar.gz: 3d714ad1eddba9e33793de52888b8f2389a7e2f1139ac37001aa1a010eb2f003ca73b503617adb9a017d25eccc2199e8d9c1590e5d2d6d6c83b231b7a0dd4b4f
data/.release_history.yml CHANGED
@@ -28,3 +28,7 @@ dockerun:
28
28
  :timestamp: 1670640902.591357
29
29
  - :version: 0.1.13
30
30
  :timestamp: 1670649972.645625
31
+ - :version: 0.1.14
32
+ :timestamp: 1670677180.3442845
33
+ - :version: 0.1.15
34
+ :timestamp: 1679980468.4161575
data/Dockerfile.dockerun CHANGED
@@ -1,9 +1,15 @@
1
1
 
2
- FROM jruby:9.4.0-jdk11
3
- LABEL version="0.1" description="Dockerfile generated by dockerun" maintainer="chris"
2
+ FROM ruby:2.7.6
3
+ LABEL version="0.1"
4
+ LABEL maintainer="chris"
5
+ LABEL description="Dockerfile generated by dockerun"
6
+ LABEL dockerun-info="https://github.com/chrisliaw/dockerun"
7
+
8
+
9
+ RUN apt-get update && apt-get install -y sudo git curl build-essential
10
+
11
+
4
12
 
5
- # Dockerfile entries here
6
- RUN apt-get update && apt-get install -y sudo
7
13
 
8
14
  RUN groupadd -f -g 1000 chris && \
9
15
  useradd -u 1000 -g 1000 -m chris && \
@@ -12,8 +18,12 @@ RUN groupadd -f -g 1000 chris && \
12
18
 
13
19
  USER chris
14
20
 
15
- RUN sudo apt-get install -y curl git
21
+ # from this point onwards, sudo is required for privileaged operation
22
+ #RUN sudo apt-get install -y curl build-essential
23
+
24
+
25
+
26
+ # other Dockerfile entries starts here
16
27
 
17
- # ENTRYPOINT [ "/bin/bash" ]
18
- # CMD [ "/bin/bash", "--login" ]
19
28
  CMD [ "/bin/bash", "--login" ]
29
+
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dockerun (0.1.12)
4
+ dockerun (0.1.15)
5
5
  docker-cli
6
6
  teLogger (~> 0.2.0)
7
7
  toolrack (~> 0.19.1)
@@ -12,7 +12,7 @@ GEM
12
12
  remote: https://rubygems.org/
13
13
  specs:
14
14
  base58 (0.2.3)
15
- devops_assist (0.3.1)
15
+ devops_assist (0.3.9)
16
16
  git_cli
17
17
  git_cli_prompt
18
18
  gvcs
@@ -20,22 +20,21 @@ GEM
20
20
  toolrack
21
21
  tty-prompt
22
22
  diff-lcs (1.5.0)
23
- docker-cli (0.1.1)
23
+ docker-cli (0.2.0)
24
24
  ptools
25
25
  teLogger
26
- toolrack
27
26
  tty-command
28
27
  tty-prompt
29
- git_cli (0.10.0)
28
+ git_cli (0.11.2)
30
29
  gvcs
31
30
  ptools (~> 1.4.0)
32
31
  teLogger
33
32
  toolrack
34
- git_cli_prompt (0.3.1)
33
+ git_cli_prompt (0.3.2)
35
34
  teLogger
36
35
  toolrack
37
36
  tty-prompt
38
- gvcs (0.1.0)
37
+ gvcs (0.1.1)
39
38
  pastel (0.8.0)
40
39
  tty-color (~> 0.5)
41
40
  ptools (1.4.3)
@@ -44,12 +43,12 @@ GEM
44
43
  rspec-core (~> 3.12.0)
45
44
  rspec-expectations (~> 3.12.0)
46
45
  rspec-mocks (~> 3.12.0)
47
- rspec-core (3.12.0)
46
+ rspec-core (3.12.1)
48
47
  rspec-support (~> 3.12.0)
49
- rspec-expectations (3.12.0)
48
+ rspec-expectations (3.12.2)
50
49
  diff-lcs (>= 1.2.0, < 2.0)
51
50
  rspec-support (~> 3.12.0)
52
- rspec-mocks (3.12.0)
51
+ rspec-mocks (3.12.4)
53
52
  diff-lcs (>= 1.2.0, < 2.0)
54
53
  rspec-support (~> 3.12.0)
55
54
  rspec-support (3.12.0)
data/exe/dockerun CHANGED
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ require 'toolrack'
4
+ include TR::CondUtils
5
+
3
6
  require 'tty/prompt'
4
7
  require_relative '../lib/dockerun'
5
8
 
@@ -16,18 +19,33 @@ else
16
19
  when "init"
17
20
  initCmd = Dockerun::Command::Init.new
18
21
  argv = ARGV[1..-1]
19
- res2 = initCmd.parse(argv).run do |ops, val|
20
- case ops
21
- when :multiple_templates_detected
22
- pmt.select("There are multiple templates available. Please select one of the template : ") do |m|
23
- val.each do |v|
24
- m.choice v, v
22
+ begin
23
+ res2 = initCmd.parse(argv).run do |ops, val|
24
+ case ops
25
+ when :multiple_templates_detected
26
+ pmt.select("There are multiple templates available. Please select one of the template : ") do |m|
27
+ val.each do |v|
28
+ m.choice v, v
29
+ end
30
+ end
31
+
32
+ when :prompt_user_configurables
33
+ pmt.say "\n The following are the configurable items for the template '#{val[:template]}' : \n", color: :yellow
34
+ res = { }
35
+ val[:userFields].each do |k,v|
36
+ res[k] = pmt.ask("#{k.to_s.capitalize} : ") do |s|
37
+ s.required v[:required] if not_empty?(v[:required]) and is_bool?(v[:required])
38
+ s.value v[:default].to_s if not_empty?(v[:default])
39
+ end
25
40
  end
41
+ res
26
42
  end
27
43
  end
28
- end
29
44
 
30
- STDOUT.puts "\nDockerfile written to '#{res2}'\n\n"
45
+ STDOUT.puts "\nDockerfile written to '#{res2}'\n\n"
46
+ rescue TTY::Reader::InputInterrupt
47
+ pmt.say "\n\n Aborted\n", color: :yellow
48
+ end
31
49
 
32
50
  when "run", "r"
33
51
 
@@ -36,6 +54,7 @@ else
36
54
  argv = ARGV[1..-1]
37
55
  runCmd.parse(argv).run
38
56
  rescue TTY::Reader::InputInterrupt
57
+ pmt.say "\n\n Aborted\n", color: :yellow
39
58
  end
40
59
 
41
60
 
@@ -46,6 +65,7 @@ else
46
65
  argv = ARGV[1..-1]
47
66
  runCmd.parse(argv).run
48
67
  rescue TTY::Reader::InputInterrupt
68
+ pmt.say "\n\n Aborted\n", color: :yellow
49
69
  end
50
70
 
51
71
 
@@ -56,6 +76,7 @@ else
56
76
  argv = ARGV[1..-1]
57
77
  runCmd.parse(argv).run
58
78
  rescue TTY::Reader::InputInterrupt
79
+ pmt.say "\n\n Aborted\n", color: :yellow
59
80
  end
60
81
 
61
82
 
@@ -65,6 +86,7 @@ else
65
86
  argv = ARGV[1..-1]
66
87
  riCmd.parse(argv).run
67
88
  rescue TTY::Reader::InputInterrupt
89
+ pmt.say "\n\n Aborted\n", color: :yellow
68
90
  end
69
91
 
70
92
 
@@ -75,6 +97,7 @@ else
75
97
  argv = ARGV[1..-1]
76
98
  riCmd.parse(argv).run
77
99
  rescue TTY::Reader::InputInterrupt
100
+ pmt.say "\n\n Aborted\n", color: :yellow
78
101
  end
79
102
 
80
103
 
@@ -1,7 +1,7 @@
1
1
 
2
2
  require 'tty/option'
3
3
 
4
- require_relative '../template/template_writter'
4
+ require_relative '../template/template_writer'
5
5
 
6
6
  module Dockerun
7
7
  module Command
@@ -59,6 +59,10 @@ module Dockerun
59
59
  end
60
60
 
61
61
  tw = ::Dockerun::Template::TemplateWriter.new(selTemp)
62
+ userFields = tw.user_configurables
63
+ if block
64
+ tw.user_configurables = block.call(:prompt_user_configurables, { template: selTemp, userFields: userFields })
65
+ end
62
66
  res = tw.compile
63
67
 
64
68
  File.open(out, "w") do |f|
@@ -10,8 +10,14 @@ module Dockerun
10
10
 
11
11
  def self.available_templates
12
12
  avail = Dir.glob(File.join(template_root,"Dockerfile_*.erb"))
13
+
14
+ #userDir = File.join(Dir.home,".dockerun","template")
15
+ #if File.exist?(userDir)
16
+ # avail += Dir.glob(userDir,"*.erb")
17
+ #end
18
+
13
19
  avail.map! { |f|
14
- name = File.basename(f,".erb")
20
+ name = File.basename(f,File.extname(f))
15
21
  name.gsub("Dockerfile_","")
16
22
  }
17
23
  end
@@ -11,7 +11,8 @@ module Dockerun
11
11
 
12
12
  class TemplateNotFound < StandardError; end
13
13
 
14
- attr_accessor :image, :user_group_id, :user_group_name, :user_id, :user_login
14
+ attr_accessor :image, :user_group_id, :user_group_name, :user_id, :user_login, :maintainer, :image_base
15
+ attr_writer :user_configurables
15
16
 
16
17
  def self.instance(template)
17
18
  tmp = template.to_s.downcase
@@ -32,9 +33,40 @@ module Dockerun
32
33
  @user_group_name = group[:group_name]
33
34
  @user_id = user[:user_id]
34
35
  @user_login = user[:login]
36
+ @image_base = :ubuntu
37
+ end
38
+
39
+ def user_configurables
40
+ fields = {
41
+ image: { desc: "Image name of the docker based on", required: true },
42
+ image_base: { desc: "Image is based on which OS? Assumption with be on Debian based. ", default: :ubuntu },
43
+ maintainer: { desc: "Maintainer of the Dockerfile", default: @maintainer }
44
+ }
45
+
46
+ if TR::RTUtils.on_linux?
47
+ f2 = {
48
+ user_group_id: { desc: "User group ID that shall be created in docker. Default to current running user's ID", default: @user_group_id.to_s },
49
+ user_group_name: { desc: "User group name that shall be created in docker. Default to current running user's group", default: @user_group_name },
50
+ user_id: { desc: "User ID that shall be created in docker. Default to current running user ID", default: @user_id.to_s },
51
+ user_login: { desc: "User login name that shall be created in docker. Default to current running user's login", default: @user_login }
52
+ }
53
+ fields.merge!(f2)
54
+ end
55
+ fields
35
56
  end
36
57
 
37
58
  def compile(&block)
59
+
60
+ if not_empty?(@user_configurables)
61
+ @user_configurables.each do |k,v|
62
+ begin
63
+ self.send("#{k}=", v)
64
+ rescue Exception => ex
65
+ STDERR.puts "Setting value exception : #{ex}"
66
+ end
67
+ end
68
+ end
69
+
38
70
  tmp = find_template
39
71
  cont = nil
40
72
  File.open(tmp,"r") do |f|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Dockerun
4
- VERSION = "0.1.14"
4
+ VERSION = "0.1.16"
5
5
  end
@@ -1,12 +1,32 @@
1
1
 
2
- FROM <%= image %>
3
- LABEL version="0.1" description="Dockerfile generated by dockerun" maintainer="<%= @maintainer %>"
2
+ FROM <%= @image %>
3
+ LABEL version="0.1"
4
+ LABEL maintainer="<%= @maintainer %>"
5
+ LABEL description="Dockerfile generated by dockerun"
6
+ LABEL dockerun-info="https://github.com/chrisliaw/dockerun"
4
7
 
5
- # Dockerfile entries here
8
+ <% case @image_base.to_sym
9
+ when :fedora %>
10
+ RUN dnf update && dnf install sudo git curl
11
+ <% else %>
12
+ RUN apt-get update && apt-get install -y sudo git curl build-essential
13
+ <% end %>
6
14
 
7
- RUN groupadd -f -g <%= @user_group_id %> <%= @user_group_name %> && useradd -u <%= @user_id %> -g <%= @user_group_id %> -m <%= @user_login %>
8
- USER <%= @user_login %>:<%= @user_group_name %>
15
+ <% if TR::RTUtils.on_linux? %>
16
+
17
+ RUN groupadd -f -g <%= @user_group_id %> <%= @user_group_name %> && \
18
+ useradd -u <%= @user_id %> -g <%= @user_group_id %> -m <%= @user_login %> && \
19
+ usermod -aG sudo <%= @user_login %> && \
20
+ echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
21
+
22
+ USER <%= @user_login %>
23
+
24
+ # from this point onwards, sudo is required for privileaged operation
25
+ #RUN sudo apt-get install -y curl build-essential
26
+
27
+ <% end %>
28
+
29
+ # other Dockerfile entries starts here
9
30
 
10
- # ENTRYPOINT [ "/bin/bash" ]
11
- # CMD [ "/bin/bash", "--login" ]
12
31
  CMD [ "/bin/bash", "--login" ]
32
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dockerun
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.1.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ian
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-10 00:00:00.000000000 Z
11
+ date: 2023-03-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: toolrack
@@ -130,12 +130,9 @@ files:
130
130
  - lib/dockerun/template/jruby_template_writer.rb
131
131
  - lib/dockerun/template/template_engine.rb
132
132
  - lib/dockerun/template/template_writer.rb
133
- - lib/dockerun/template/template_writter.rb
134
- - lib/dockerun/template_engine.rb
135
133
  - lib/dockerun/user_info.rb
136
134
  - lib/dockerun/version.rb
137
135
  - template/Dockerfile_general.erb
138
- - template/Dockerfile_jruby-9.4.0-jdk11.erb
139
136
  homepage: ''
140
137
  licenses: []
141
138
  metadata: {}
@@ -154,7 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
154
151
  - !ruby/object:Gem::Version
155
152
  version: '0'
156
153
  requirements: []
157
- rubygems_version: 3.2.22
154
+ rubygems_version: 3.4.6
158
155
  signing_key:
159
156
  specification_version: 4
160
157
  summary: ''
@@ -1,58 +0,0 @@
1
-
2
- require 'erb'
3
-
4
- require_relative '../user_info'
5
-
6
- module Dockerun
7
- module Template
8
-
9
- class TemplateWritter
10
- include UserInfo
11
-
12
- class TemplateNotFound < StandardError; end
13
-
14
- attr_accessor :image, :user_group_id, :user_group_name, :user_id, :user_login
15
-
16
- def self.instance(template)
17
-
18
- end
19
-
20
- def initialize(template = :general)
21
- @template = template
22
- @image = "<Replace me>"
23
- user = user_info
24
- group = group_info
25
- @maintainer = user[:login]
26
- @user_group_id = group[:group_id]
27
- @user_group_name = group[:group_name]
28
- @user_id = user[:user_id]
29
- @user_login = user[:login]
30
- end
31
-
32
- def compile(&block)
33
- tmp = find_template
34
- cont = nil
35
- File.open(tmp,"r") do |f|
36
- cont = f.read
37
- end
38
-
39
- b = binding
40
-
41
- res = ERB.new(cont)
42
- res.result(b)
43
- end
44
-
45
- private
46
- def find_template
47
- @template = :general if is_empty?(@template)
48
-
49
- root = TemplateEngine.template_root
50
- templateFile = File.join(root,"Dockerfile_#{@template}.erb")
51
- raise TemplateNotFound, "Given template '#{@template}' could not be found" if not File.exist?(templateFile)
52
-
53
- templateFile
54
- end
55
-
56
- end
57
- end
58
- end
@@ -1,14 +0,0 @@
1
-
2
-
3
- module Dockerun
4
- module Template
5
- class TemplateEngine
6
-
7
- def self.available_templates
8
- path = File.join(File.dirname(__FILE__),"..","..","..","template")
9
-
10
- end
11
-
12
- end
13
- end
14
- end
@@ -1,21 +0,0 @@
1
-
2
- FROM jruby:9.4.0-jdk11
3
- LABEL version="0.1" description="Dockerfile generated by dockerun" maintainer="<%= @maintainer %>"
4
-
5
- RUN apt-get update && apt-get install -y sudo
6
-
7
- RUN groupadd -f -g <%= @user_group_id %> <%= @user_group_name %> && \
8
- useradd -u <%= @user_id %> -g <%= @user_group_id %> -m <%= @user_login %> && \
9
- usermod -aG sudo <%= @user_login %> && \
10
- echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
11
-
12
- USER <%= @user_login %>
13
-
14
- # from this point onwards, sudo is required for privileaged operation
15
- RUN sudo apt-get install -y curl
16
-
17
- # other Dockerfile entries starts here
18
-
19
- # ENTRYPOINT [ "/bin/bash" ]
20
- # CMD [ "/bin/bash", "--login" ]
21
- CMD [ "/bin/bash", "--login" ]