Class: Avmtrf1::Tools::Runner::Php::Docker

Inherits:
EacRubyUtils::Console::DocoptRunner
  • Object
show all
Defined in:
lib/avmtrf1/tools/runner/php/docker.rb

Constant Summary collapse

DOC =
"Constr\u00F3i imagens Docker para PHP.\n\nUsage:\n  __PROGRAM__ [options] [<version>...]\n  __PROGRAM__ -h | --help\n\nOptions:\n  -h --help     Mostra esta ajuda.\n  -d --default  Adiciona as vers\u00F5es padr\u00E3o.\n  -n --registry-name=<registry-name>  Nome do registro.\n  -p --push     Envia a imagem.\n  -S --no-snapshot    N\u00E3o adiciona \"-snapshot\" no nome da imagem.\n  -V --no-version    N\u00E3o adiciona a vers\u00E3o do gerador no nome da imagem.\n"

Instance Method Summary collapse

Instance Method Details

#build_image(php_version) ⇒ Object



74
75
76
77
78
79
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 74

def build_image(php_version)
  r = ::Avmtrf1::Php::DockerImage.new(registry, php_version)
  r.send('version=', !options.fetch('--no-version'))
  r.snapshot = !options.fetch('--no-snapshot')
  r
end

#default_versionsObject



39
40
41
42
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 39

def default_versions
  ::Avmtrf1.configs.read_entry('php.default_versions').split(',').map(&:strip)
           .reject(&:blank?)
end

#process_version(version) ⇒ Object



59
60
61
62
63
64
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 59

def process_version(version)
  image = build_image(version)
  infom "Building Docker image \"#{image.tag}\""
  image.build
  image.push if options.fetch('--push')
end

#registry_nameObject



66
67
68
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 66

def registry_name
  options.fetch('--registry-name') || ::Avmtrf1.configs.read_entry('docker.registry.name')
end

#registry_uncachedObject



70
71
72
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 70

def registry_uncached
  ::Avm::Docker::Registry.new(registry_name)
end

#runObject



32
33
34
35
36
37
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 32

def run
  infov 'Versions to build', versions_to_s
  versions.each do |version|
    process_version(version)
  end
end

#versionsObject



52
53
54
55
56
57
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 52

def versions
  (
    options.fetch('<version>') +
    (options.fetch('--default') ? default_versions : [])
  ).uniq.sort
end

#versions_to_sObject



44
45
46
47
48
49
50
# File 'lib/avmtrf1/tools/runner/php/docker.rb', line 44

def versions_to_s
  if versions.any?
    versions.join(', ')
  else
    '-- NONE --'
  end
end