Class: Dapp::Image::Stage
- Includes:
- Argument
- Defined in:
- lib/dapp/image/stage.rb
Overview
Stage
Instance Attribute Summary
Attributes inherited from Docker
Instance Method Summary collapse
- #build!(**kwargs) ⇒ Object
- #built_id ⇒ Object
- #export!(name, log_verbose: false, log_time: false, force: false) ⇒ Object
-
#initialize(name:, built_id: nil, from: nil) ⇒ Stage
constructor
A new instance of Stage.
- #labels ⇒ Object
- #tag!(log_verbose: false, log_time: false, force: false) ⇒ Object
Methods included from Argument
#add_change_cmd, #add_change_entrypoint, #add_change_env, #add_change_expose, #add_change_label, #add_change_onbuild, #add_change_user, #add_change_volume, #add_change_workdir, #add_cmd, #add_command, #add_entrypoint, #add_volume, #add_volumes_from
Methods inherited from Docker
cache, cache_reset, #id, image_config_option, #info, #pull!, #pulled?, #push!, #tagged?, #untag!
Methods included from Helper::Shellout
included, #shellout, #shellout!, #shellout_pack
Constructor Details
#initialize(name:, built_id: nil, from: nil) ⇒ Stage
Returns a new instance of Stage.
8 9 10 11 12 13 14 15 |
# File 'lib/dapp/image/stage.rb', line 8 def initialize(name:, built_id: nil, from: nil) @bash_commands = [] @options = {} @change_options = {} @container_name = SecureRandom.hex @built_id = built_id super(name: name, from: from) end |
Instance Method Details
#build!(**kwargs) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/dapp/image/stage.rb', line 25 def build!(**kwargs) run!(**kwargs) @built_id = commit! ensure shellout("docker rm #{container_name}") end |
#built_id ⇒ Object
21 22 23 |
# File 'lib/dapp/image/stage.rb', line 21 def built_id @built_id ||= id end |
#export!(name, log_verbose: false, log_time: false, force: false) ⇒ Object
32 33 34 35 36 37 |
# File 'lib/dapp/image/stage.rb', line 32 def export!(name, log_verbose: false, log_time: false, force: false) image = self.class.new(built_id: built_id, name: name) image.tag!(log_verbose: log_verbose, log_time: log_time, force: force) image.push!(log_verbose: log_verbose, log_time: log_time) image.untag! end |
#labels ⇒ Object
17 18 19 |
# File 'lib/dapp/image/stage.rb', line 17 def labels self.class.image_config_option(image_id: built_id, option: 'labels') end |
#tag!(log_verbose: false, log_time: false, force: false) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/dapp/image/stage.rb', line 39 def tag!(log_verbose: false, log_time: false, force: false) if !(existed_id = id).nil? && !force raise Error::Build, code: :another_image_already_tagged if built_id != existed_id return end shellout!("docker tag #{built_id} #{name}", log_verbose: log_verbose, log_time: log_time) cache_reset end |