Class: Dockdev::Image
- Inherits:
-
Object
- Object
- Dockdev::Image
- Includes:
- TR::CondUtils
- Defined in:
- lib/dockdev/image.rb
Instance Method Summary collapse
- #build(dockerfile, opts = {}) ⇒ Object
- #destroy ⇒ Object
- #has_image? ⇒ Boolean
-
#initialize(name) ⇒ Image
constructor
A new instance of Image.
- #new_container(cont_name, opts = {}) ⇒ Object
Constructor Details
#initialize(name) ⇒ Image
Returns a new instance of Image.
12 13 14 15 |
# File 'lib/dockdev/image.rb', line 12 def initialize(name) @image_name = name @cmd_fact = Docker::Cli::CommandFactory.new end |
Instance Method Details
#build(dockerfile, opts = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/dockdev/image.rb', line 40 def build(dockerfile, opts = {}) dockerfilePath = dockerfile if is_transfer_user?(opts) cont = append_transfer_user_in_dockerfile(dockerfile) dockerfilePath = generated_dockerfile File.open(dockerfilePath, "w") do |f| f.write cont end end optss = { context_root: opts[:root], dockerfile: dockerfilePath } optss.merge!(opts) res = @cmd_fact.build_image(@image_name, optss).run FileUtils.rm(generated_dockerfile) if File.exist?(generated_dockerfile) and not is_keep_generated_dockerfile? res end |
#destroy ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/dockdev/image.rb', line 64 def destroy res = @cmd_fact.delete_image(@image_name).run if res.success? not res.is_out_stream_empty? else raise Error, "Error triggered during deleting image : #{res.err_stream}" end end |
#has_image? ⇒ Boolean
17 18 19 20 21 22 23 24 |
# File 'lib/dockdev/image.rb', line 17 def has_image? res = @cmd_fact.find_image(@image_name).run if res.success? not res.is_out_stream_empty? else raise Error, "Error triggered during find existing image : #{res.err_stream}" end end |
#new_container(cont_name, opts = {}) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/dockdev/image.rb', line 26 def new_container(cont_name, opts = {}) optss = { interactive: true, tty: true, container_name: cont_name, match_user: TR::RTUtils.on_linux? } optss.merge!(opts) @cmd_fact.create_container_from_image(@image_name, optss).run end |