dockerun 0.1.14
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 +7 -0
- data/.release_history.yml +30 -0
- data/.rspec +3 -0
- data/Dockerfile.dockerun +19 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +84 -0
- data/README.md +35 -0
- data/Rakefile +10 -0
- data/bin/console +15 -0
- data/bin/setup +8 -0
- data/dockerun.gemspec +48 -0
- data/exe/dockerun +86 -0
- data/lib/dockerun/cli_prompt.rb +17 -0
- data/lib/dockerun/command/dockerun.rb +30 -0
- data/lib/dockerun/command/init.rb +75 -0
- data/lib/dockerun/command/remove_container.rb +99 -0
- data/lib/dockerun/command/reset_image.rb +107 -0
- data/lib/dockerun/command/run.rb +135 -0
- data/lib/dockerun/command/run_new_container.rb +94 -0
- data/lib/dockerun/command/run_new_image.rb +89 -0
- data/lib/dockerun/config.rb +97 -0
- data/lib/dockerun/docker_command_factory_helper.rb +15 -0
- data/lib/dockerun/docker_container_helper.rb +111 -0
- data/lib/dockerun/docker_image_helper.rb +173 -0
- data/lib/dockerun/template/general_template_writer.rb +14 -0
- data/lib/dockerun/template/jruby_template_writer.rb +24 -0
- data/lib/dockerun/template/template_engine.rb +21 -0
- data/lib/dockerun/template/template_writer.rb +63 -0
- data/lib/dockerun/template/template_writter.rb +58 -0
- data/lib/dockerun/template_engine.rb +14 -0
- data/lib/dockerun/user_info.rb +37 -0
- data/lib/dockerun/version.rb +5 -0
- data/lib/dockerun.rb +22 -0
- data/template/Dockerfile_general.erb +12 -0
- data/template/Dockerfile_jruby-9.4.0-jdk11.erb +21 -0
- metadata +161 -0
@@ -0,0 +1,173 @@
|
|
1
|
+
|
2
|
+
require_relative 'cli_prompt'
|
3
|
+
require_relative 'docker_command_factory_helper'
|
4
|
+
|
5
|
+
module Dockerun
|
6
|
+
module CommandHelper
|
7
|
+
module DockerImageHelper
|
8
|
+
include CliHelper::CliPrompt
|
9
|
+
include DockerCommandFactoryHelper
|
10
|
+
|
11
|
+
class DockerfileNotExist < StandardError; end
|
12
|
+
class DockerImageBuildFailed < StandardError; end
|
13
|
+
class DockerImageDeleteFailed < StandardError; end
|
14
|
+
|
15
|
+
def load_dockerfile(root = Dir.getwd)
|
16
|
+
|
17
|
+
df = Dir.glob(File.join(root,"Dockerfile*"))
|
18
|
+
if df.length == 0
|
19
|
+
raise DockerfileNotExist, "Dockerfile not yet available. Please create one or run init first."
|
20
|
+
end
|
21
|
+
|
22
|
+
selectedDf = nil
|
23
|
+
if df.length > 1
|
24
|
+
selectedDf = cli.select("Please select one of the Dockerfile to proceed: ") do |m|
|
25
|
+
df.each do |d|
|
26
|
+
m.choice File.basename(d), d
|
27
|
+
end
|
28
|
+
end
|
29
|
+
else
|
30
|
+
selectedDf = df.first
|
31
|
+
end
|
32
|
+
|
33
|
+
selectedDf
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
def build_image_if_not_exist(name, &block)
|
38
|
+
|
39
|
+
raise DockerImageBuildFailed, "block is required" if not block
|
40
|
+
|
41
|
+
if is_empty?(name)
|
42
|
+
reuse = false
|
43
|
+
loop do
|
44
|
+
name = block.call(:new_image_name)
|
45
|
+
break if not is_image_existed?(name)
|
46
|
+
reuse, name = block.call(:image_exist, name)
|
47
|
+
break if reuse
|
48
|
+
end
|
49
|
+
|
50
|
+
if reuse
|
51
|
+
|
52
|
+
else
|
53
|
+
dockerfile = load_dockerfile(Dir.getwd)
|
54
|
+
build_docker_image(name, dockerfile: dockerfile)
|
55
|
+
end
|
56
|
+
|
57
|
+
else
|
58
|
+
|
59
|
+
if not is_image_existed?(name)
|
60
|
+
dockerfile = load_dockerfile(Dir.getwd)
|
61
|
+
build_docker_image(name, dockerfile: dockerfile)
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
name
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
#def new_image(config, selectedDf)
|
71
|
+
|
72
|
+
# if not_empty?(selectedDf)
|
73
|
+
# imageName = cli.ask("Please provide an image name : ", required: true)
|
74
|
+
# res = dcFact.find_image(imageName).run
|
75
|
+
# if not res[:result].failed? and not_empty?(res[:outStream])
|
76
|
+
# reuse = cli.yes?("Image named '#{imageName}' already exist. Use the existing image? ")
|
77
|
+
# if reuse
|
78
|
+
# config.image_name = imageName
|
79
|
+
# else
|
80
|
+
# keep = cli.no?("Remove existing image and create a new image? ")
|
81
|
+
# if not keep
|
82
|
+
# res = dcFact.delete_image(imageName).run
|
83
|
+
# if not res[:result].failed?
|
84
|
+
# puts "Existing image with name '#{imageName}' removed."
|
85
|
+
# res = dcFact.build_image(imageName, dockerfile: selectedDf).run
|
86
|
+
# if not res[:result].failed?
|
87
|
+
# config.image_name = imageName
|
88
|
+
# else
|
89
|
+
# raise DockerImageBuildFailed, "Error while building image '#{imageName}'. Error stream : #{res[:errStream].join(" ")}"
|
90
|
+
# end
|
91
|
+
|
92
|
+
# else
|
93
|
+
# raise DockerImageDeleteFailed, "Error while deleting image '#{imageName}'. Error stream : #{res[:errStream].join(" ")}"
|
94
|
+
# end
|
95
|
+
|
96
|
+
# else
|
97
|
+
# # user select not to use existing and keep the existing image...
|
98
|
+
# # nothing can be done then right?
|
99
|
+
# raise Dockerun::Error, "Alreay has existing image with name '#{imageName}' but not reusing the image. System cannot proceed. Please either delete or reuse the image"
|
100
|
+
# end
|
101
|
+
# end # if reuse or not
|
102
|
+
|
103
|
+
# else
|
104
|
+
|
105
|
+
# # no existing image
|
106
|
+
# res = dcFact.build_image(imageName, dockerfile: selectedDf).run
|
107
|
+
# if res[:result].failed?
|
108
|
+
# raise DockerImageBuildFailed, "Error building image '#{imageName}' from dockerfile '#{selectedDf}'. Error was : #{res[:errStream].join(" ")}"
|
109
|
+
# end
|
110
|
+
|
111
|
+
# config.image_name = imageName
|
112
|
+
|
113
|
+
# end # if image found or not
|
114
|
+
|
115
|
+
# else
|
116
|
+
# # no Dockerfile found
|
117
|
+
# raise DockerfileNotExist, "No Dockerfile given. Please make sure there is one or run init first"
|
118
|
+
# end # not_empy? selectedDf
|
119
|
+
|
120
|
+
|
121
|
+
#end
|
122
|
+
|
123
|
+
#def build_image(imageName, selectedDf)
|
124
|
+
|
125
|
+
# raise DockerImageBuildFailed, "Image name cannot be empty" if is_empty?(imageName)
|
126
|
+
|
127
|
+
# res = dcFact.find_image(imageName).run
|
128
|
+
# if not res[:result].failed? and is_empty?(res[:outStream])
|
129
|
+
# # image does not exist
|
130
|
+
# res = dcFact.build_image(imageName, dockerfile: selectedDf).run
|
131
|
+
# if res[:result].failed?
|
132
|
+
# raise DockerImageBuildFailed, "Building image '#{config.image_name}' failed. Error stream : #{res[:errStream].join(" ")}"
|
133
|
+
# end
|
134
|
+
# end
|
135
|
+
|
136
|
+
#end
|
137
|
+
|
138
|
+
private
|
139
|
+
def is_image_existed?(name)
|
140
|
+
if is_empty?(name)
|
141
|
+
false
|
142
|
+
else
|
143
|
+
res = dcFact.find_image(name).run
|
144
|
+
if not res.failed? and res.is_out_stream_empty?
|
145
|
+
false
|
146
|
+
else
|
147
|
+
true
|
148
|
+
end
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def delete_docker_image(name)
|
153
|
+
if not_empty?(name)
|
154
|
+
res = dcFact.delete_image(name).run
|
155
|
+
not res.failed?
|
156
|
+
else
|
157
|
+
true
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def build_docker_image(name, opts = { })
|
162
|
+
raise DockerImageBuildFailed, "Given name to build docker image is empty" if is_empty?(name)
|
163
|
+
|
164
|
+
res = dcFact.build_image(name, opts).run
|
165
|
+
if res.failed?
|
166
|
+
raise DockerImageBuildFailed, "Building image '#{name}' failed. Error stream : #{res.err_stream}"
|
167
|
+
end
|
168
|
+
|
169
|
+
end
|
170
|
+
|
171
|
+
end
|
172
|
+
end
|
173
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
require_relative 'template_writer'
|
3
|
+
|
4
|
+
module Dockerun
|
5
|
+
module Template
|
6
|
+
class JrubyTemplateWriter < TemplateWriter
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super
|
10
|
+
end
|
11
|
+
|
12
|
+
alias_method :find_template, :find_template_super
|
13
|
+
def find_template
|
14
|
+
case @template
|
15
|
+
when "jruby-9.4.0-jdk11"
|
16
|
+
@image = "jruby:9.4.0-jdk11"
|
17
|
+
end
|
18
|
+
|
19
|
+
find_template_super
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
module Dockerun
|
4
|
+
module Template
|
5
|
+
class TemplateEngine
|
6
|
+
|
7
|
+
def self.template_root
|
8
|
+
File.join(File.dirname(__FILE__),"..","..","..","template")
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.available_templates
|
12
|
+
avail = Dir.glob(File.join(template_root,"Dockerfile_*.erb"))
|
13
|
+
avail.map! { |f|
|
14
|
+
name = File.basename(f,".erb")
|
15
|
+
name.gsub("Dockerfile_","")
|
16
|
+
}
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
|
2
|
+
require 'erb'
|
3
|
+
|
4
|
+
require_relative '../user_info'
|
5
|
+
|
6
|
+
module Dockerun
|
7
|
+
module Template
|
8
|
+
|
9
|
+
class TemplateWriter
|
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
|
+
tmp = template.to_s.downcase
|
18
|
+
if tmp =~ /jruby/
|
19
|
+
JrubyTemplateWriter.new
|
20
|
+
else
|
21
|
+
TemplateWriter.new
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize(template = :general)
|
26
|
+
@template = template
|
27
|
+
@image = "<Replace me>"
|
28
|
+
user = user_info
|
29
|
+
group = group_info
|
30
|
+
@maintainer = user[:login]
|
31
|
+
@user_group_id = group[:group_id]
|
32
|
+
@user_group_name = group[:group_name]
|
33
|
+
@user_id = user[:user_id]
|
34
|
+
@user_login = user[:login]
|
35
|
+
end
|
36
|
+
|
37
|
+
def compile(&block)
|
38
|
+
tmp = find_template
|
39
|
+
cont = nil
|
40
|
+
File.open(tmp,"r") do |f|
|
41
|
+
cont = f.read
|
42
|
+
end
|
43
|
+
|
44
|
+
b = binding
|
45
|
+
|
46
|
+
res = ERB.new(cont)
|
47
|
+
res.result(b)
|
48
|
+
end
|
49
|
+
|
50
|
+
protected
|
51
|
+
def find_template
|
52
|
+
@template = :general if is_empty?(@template)
|
53
|
+
|
54
|
+
root = TemplateEngine.template_root
|
55
|
+
templateFile = File.join(root,"Dockerfile_#{@template}.erb")
|
56
|
+
raise TemplateNotFound, "Given template '#{@template}' could not be found" if not File.exist?(templateFile)
|
57
|
+
|
58
|
+
templateFile
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,58 @@
|
|
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
|
@@ -0,0 +1,37 @@
|
|
1
|
+
|
2
|
+
require 'etc'
|
3
|
+
|
4
|
+
module Dockerun
|
5
|
+
|
6
|
+
module UserInfo
|
7
|
+
include TR::CondUtils
|
8
|
+
|
9
|
+
def user_info(login = nil)
|
10
|
+
login = Etc.getlogin if is_empty?(login)
|
11
|
+
res = { login: login }
|
12
|
+
begin
|
13
|
+
res[:user_id] = Etc.getpwnam(login).uid
|
14
|
+
rescue Exception => ex
|
15
|
+
res[:user_id] = nil
|
16
|
+
end
|
17
|
+
res
|
18
|
+
end
|
19
|
+
|
20
|
+
def group_info(login = nil)
|
21
|
+
login = Etc.getlogin if is_empty?(login)
|
22
|
+
res = { }
|
23
|
+
begin
|
24
|
+
gnm = Etc.getgrnam(login)
|
25
|
+
res[:group_name] = gnm.name
|
26
|
+
res[:group_id] = gnm.gid
|
27
|
+
rescue Exception => ex
|
28
|
+
p ex
|
29
|
+
res[:group_name] = ""
|
30
|
+
res[:group_id] = nil
|
31
|
+
end
|
32
|
+
res
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
data/lib/dockerun.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'toolrack'
|
4
|
+
require 'teLogger'
|
5
|
+
|
6
|
+
require_relative "dockerun/version"
|
7
|
+
|
8
|
+
require_relative 'dockerun/command/dockerun'
|
9
|
+
require_relative 'dockerun/command/init'
|
10
|
+
require_relative 'dockerun/command/run'
|
11
|
+
require_relative 'dockerun/command/reset_image'
|
12
|
+
require_relative 'dockerun/command/run_new_container'
|
13
|
+
require_relative 'dockerun/command/remove_container'
|
14
|
+
require_relative 'dockerun/command/run_new_image'
|
15
|
+
|
16
|
+
require_relative 'dockerun/template/template_writer'
|
17
|
+
require_relative 'dockerun/template/template_engine'
|
18
|
+
|
19
|
+
module Dockerun
|
20
|
+
class Error < StandardError; end
|
21
|
+
# Your code goes here...
|
22
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
|
2
|
+
FROM <%= image %>
|
3
|
+
LABEL version="0.1" description="Dockerfile generated by dockerun" maintainer="<%= @maintainer %>"
|
4
|
+
|
5
|
+
# Dockerfile entries here
|
6
|
+
|
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 %>
|
9
|
+
|
10
|
+
# ENTRYPOINT [ "/bin/bash" ]
|
11
|
+
# CMD [ "/bin/bash", "--login" ]
|
12
|
+
CMD [ "/bin/bash", "--login" ]
|
@@ -0,0 +1,21 @@
|
|
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" ]
|
metadata
ADDED
@@ -0,0 +1,161 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dockerun
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.14
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Ian
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2022-12-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: toolrack
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.19.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.19.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: teLogger
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.2.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.2.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: tty-command
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.10.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.10.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: tty-option
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.2.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.2.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: docker-cli
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: devops_assist
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: ''
|
98
|
+
email:
|
99
|
+
- cameronian0@protonmail.com
|
100
|
+
executables:
|
101
|
+
- dockerun
|
102
|
+
extensions: []
|
103
|
+
extra_rdoc_files: []
|
104
|
+
files:
|
105
|
+
- ".release_history.yml"
|
106
|
+
- ".rspec"
|
107
|
+
- Dockerfile.dockerun
|
108
|
+
- Gemfile
|
109
|
+
- Gemfile.lock
|
110
|
+
- README.md
|
111
|
+
- Rakefile
|
112
|
+
- bin/console
|
113
|
+
- bin/setup
|
114
|
+
- dockerun.gemspec
|
115
|
+
- exe/dockerun
|
116
|
+
- lib/dockerun.rb
|
117
|
+
- lib/dockerun/cli_prompt.rb
|
118
|
+
- lib/dockerun/command/dockerun.rb
|
119
|
+
- lib/dockerun/command/init.rb
|
120
|
+
- lib/dockerun/command/remove_container.rb
|
121
|
+
- lib/dockerun/command/reset_image.rb
|
122
|
+
- lib/dockerun/command/run.rb
|
123
|
+
- lib/dockerun/command/run_new_container.rb
|
124
|
+
- lib/dockerun/command/run_new_image.rb
|
125
|
+
- lib/dockerun/config.rb
|
126
|
+
- lib/dockerun/docker_command_factory_helper.rb
|
127
|
+
- lib/dockerun/docker_container_helper.rb
|
128
|
+
- lib/dockerun/docker_image_helper.rb
|
129
|
+
- lib/dockerun/template/general_template_writer.rb
|
130
|
+
- lib/dockerun/template/jruby_template_writer.rb
|
131
|
+
- lib/dockerun/template/template_engine.rb
|
132
|
+
- lib/dockerun/template/template_writer.rb
|
133
|
+
- lib/dockerun/template/template_writter.rb
|
134
|
+
- lib/dockerun/template_engine.rb
|
135
|
+
- lib/dockerun/user_info.rb
|
136
|
+
- lib/dockerun/version.rb
|
137
|
+
- template/Dockerfile_general.erb
|
138
|
+
- template/Dockerfile_jruby-9.4.0-jdk11.erb
|
139
|
+
homepage: ''
|
140
|
+
licenses: []
|
141
|
+
metadata: {}
|
142
|
+
post_install_message:
|
143
|
+
rdoc_options: []
|
144
|
+
require_paths:
|
145
|
+
- lib
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
|
+
requirements:
|
148
|
+
- - ">="
|
149
|
+
- !ruby/object:Gem::Version
|
150
|
+
version: 2.4.0
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
version: '0'
|
156
|
+
requirements: []
|
157
|
+
rubygems_version: 3.2.22
|
158
|
+
signing_key:
|
159
|
+
specification_version: 4
|
160
|
+
summary: ''
|
161
|
+
test_files: []
|