Sha256: 53dce175263f9b284025ae3e50beb438d1f19755385800d3d1a09f3ca3d331e4
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
# frozen_string_literal: true require 'hako/version' module Hako class Container attr_reader :definition def initialize(app, definition, dry_run:) @app = app @definition = default_config.merge(definition) @definition['docker_labels'].merge!(default_labels) @dry_run = dry_run end %w[ image_tag docker_labels cpu memory links mount_points ].each do |name| define_method(name) do @definition[name] end define_method("#{name}=") do |val| @definition[name] = val end end def env @expanded_env ||= expand_env(@definition.fetch('env', {})) end private PROVIDERS_KEY = '$providers' def expand_env(env) env = env.dup provider_types = env.delete(PROVIDERS_KEY) || [] if @dry_run env else providers = load_providers(provider_types) EnvExpander.new(providers).expand(env) end end def load_providers(provider_configs) provider_configs.map do |yaml| Loader.new(Hako::EnvProviders, 'hako/env_providers').load(yaml.fetch('type')).new(@app.root_path, yaml) end end def default_config { 'docker_labels' => {}, 'links' => [], 'mount_points' => [], } end def default_labels { 'cc.wanko.hako.version' => VERSION, } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
hako-0.11.0 | lib/hako/container.rb |