Module: Dockerun::DSL
Instance Method Summary collapse
- #config(&block) ⇒ Object
- #container_name ⇒ Object
-
#dockerfile_patch(&block) ⇒ Object
Additional dockerfile configurations for example if user did not specify the image name, better generate by system so that it can be traced for subsequent functions later such as delete image.
- #exec_root ⇒ Object
-
#from(base_image, &block) ⇒ Object
Main DSL for dockerfile related configurations.
-
#go ⇒ Object
Trigger point to start the ball rolling!.
- #image_name ⇒ Object
- #listener(&block) ⇒ Object
- #set_dry_run_mode(bool = true, prompt = false) ⇒ Object
- #set_exec_root(root) ⇒ Object
-
#up(&block) ⇒ Object
Main DSL for docker cli.
Instance Method Details
#config(&block) ⇒ Object
19 20 21 |
# File 'lib/dockerun/dsl.rb', line 19 def config(&block) _config.instance_eval(&block) end |
#container_name ⇒ Object
114 115 116 117 118 119 120 |
# File 'lib/dockerun/dsl.rb', line 114 def container_name if _docker_cli.is_container_name_given? _docker_cli.container_name else _docker_cli.generated_container_name end end |
#dockerfile_patch(&block) ⇒ Object
Additional dockerfile configurations for example if user did not specify the image name, better generate by system so that it can be traced for subsequent functions later such as delete image
37 38 39 |
# File 'lib/dockerun/dsl.rb', line 37 def dockerfile_patch(&block) _file.instance_eval(&block) end |
#exec_root ⇒ Object
15 16 17 |
# File 'lib/dockerun/dsl.rb', line 15 def exec_root @_exec_root end |
#from(base_image, &block) ⇒ Object
Main DSL for dockerfile related configurations
28 29 30 31 |
# File 'lib/dockerun/dsl.rb', line 28 def from(base_image, &block) _dfile.base_image = base_image _dfile.instance_eval(&block) end |
#go ⇒ Object
Trigger point to start the ball rolling!
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/dockerun/dsl.rb', line 47 def go # Link context with Dockerfile and docker cli if not_empty?(_config.active_context) self.listener do |ops, *val| _config.active_context.call(ops, *val) end _dfile.listener do |ops, *val| _config.active_context.call(ops, *val) end _docker_cli.listener do |ops, *val| _config.active_context.call(ops, *val) end end # give chance to context to verify the integrity of the # workspace before proceed trigger_listener(:dsl_before_go, self) # check if image exist? if not image_exist? logger.debug "Image doesn't exist... proceed to build the image" # if not exist, build the image giving the name st, res = build_image if st trigger_listener(:dsl_image_built, self) #puts " Image '#{image_name}' built successfully" else trigger_listener(:dsl_image_building_failed, self) raise Error, " Image '#{image_name}' failed to be built. Error was : #{res.err_lines.join("\n")}" end else logger.debug "Image exist... skipped image building..." end # check if container exist? if container_exist? trigger_listener(:dsl_before_start_container, self) logger.debug "Container exist... Starting container..." # container exist, start the container start_container trigger_listener(:dsl_before_attach_container, self) logger.debug "Container started... attaching container..." # attach to container attach_container trigger_listener(:dsl_after_attach_container, self) else trigger_listener(:dsl_before_run_container, self) logger.debug "Container does not exist. Creating new container..." # Container does not exist, run the container run_container end end |
#image_name ⇒ Object
106 107 108 109 110 111 112 |
# File 'lib/dockerun/dsl.rb', line 106 def image_name if _dfile.is_image_name_given? _dfile.image_name else _dfile.generated_image_name end end |
#listener(&block) ⇒ Object
123 124 125 |
# File 'lib/dockerun/dsl.rb', line 123 def listener(&block) @listener = block end |
#set_dry_run_mode(bool = true, prompt = false) ⇒ Object
23 24 25 |
# File 'lib/dockerun/dsl.rb', line 23 def set_dry_run_mode(bool = true, prompt = false) _config.dry_run(bool, prompt) end |
#set_exec_root(root) ⇒ Object
12 13 14 |
# File 'lib/dockerun/dsl.rb', line 12 def set_exec_root(root) @_exec_root = root end |
#up(&block) ⇒ Object
Main DSL for docker cli
42 43 44 |
# File 'lib/dockerun/dsl.rb', line 42 def up(&block) _docker_cli.instance_eval(&block) end |