avm-tools 0.21.0 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/avm.rb +3 -10
- data/lib/avm/docker.rb +9 -0
- data/lib/avm/docker/container.rb +49 -0
- data/lib/avm/docker/image.rb +50 -0
- data/lib/avm/docker/registry.rb +25 -0
- data/lib/avm/docker/runner.rb +76 -0
- data/lib/avm/executables.rb +4 -0
- data/lib/avm/instances/base.rb +2 -1
- data/lib/avm/instances/base/dockerizable.rb +39 -0
- data/lib/avm/stereotypes/eac_redmine_base0.rb +11 -0
- data/lib/avm/stereotypes/eac_redmine_base0/instance.rb +25 -0
- data/lib/avm/stereotypes/eac_ubuntu_base0/docker_image.rb +19 -0
- data/lib/avm/tools/runner/eac_redmine_base0.rb +34 -0
- data/lib/avm/tools/runner/eac_redmine_base0/docker.rb +14 -0
- data/lib/avm/tools/version.rb +1 -1
- data/template/avm/stereotypes/eac_ubuntu_base0/docker_image/Dockerfile +11 -0
- metadata +14 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 15042971f9c97791f18e9e663ddc0bc3294280e1efba45d7f14ac3c6af60e63e
         | 
| 4 | 
            +
              data.tar.gz: 06ff3ac5fa18b309c36372c52cf551c7e2da7059c716087ab6b82739c7ecc48b
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 753715c0040270d6fc3e1cf4cc212bca06397e4dd21312e3d148d1575071272ad7b489cbef53872df3919d29b11220ea82a829e54bf315e4257022ccd639576a
         | 
| 7 | 
            +
              data.tar.gz: 59a989fe98205a556e301b8dbe7d5a90f00d075809cd9db6e6a7511b789a256126e43b606431b3344ff632c8a2d61d24cdddd12c380c6822d503c2c9e0ca32f0
         | 
    
        data/lib/avm.rb
    CHANGED
    
    | @@ -1,14 +1,7 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            +
            require 'eac_ruby_utils/require_sub'
         | 
| 4 | 
            +
             | 
| 3 5 | 
             
            module Avm
         | 
| 4 | 
            -
               | 
| 5 | 
            -
              require 'avm/data'
         | 
| 6 | 
            -
              require 'avm/executables'
         | 
| 7 | 
            -
              require 'avm/git'
         | 
| 8 | 
            -
              require 'avm/instances'
         | 
| 9 | 
            -
              require 'avm/patches'
         | 
| 10 | 
            -
              require 'avm/result'
         | 
| 11 | 
            -
              require 'avm/stereotypes'
         | 
| 12 | 
            -
              require 'avm/templates'
         | 
| 13 | 
            -
              require 'avm/tools'
         | 
| 6 | 
            +
              ::EacRubyUtils.require_sub(__FILE__)
         | 
| 14 7 | 
             
            end
         | 
    
        data/lib/avm/docker.rb
    ADDED
    
    
| @@ -0,0 +1,49 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
            require 'avm/executables'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Avm
         | 
| 7 | 
            +
              module Docker
         | 
| 8 | 
            +
                class Container
         | 
| 9 | 
            +
                  enable_console_speaker
         | 
| 10 | 
            +
                  common_constructor :instance
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  def remove
         | 
| 13 | 
            +
                    ::Avm::Executables.docker.command.append(
         | 
| 14 | 
            +
                      ['rm', '--force', instance.docker_container_name]
         | 
| 15 | 
            +
                    ).system!
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                  def run(options = {})
         | 
| 19 | 
            +
                    infov 'Container name', instance.docker_container_name
         | 
| 20 | 
            +
                    infov 'Container exist?', instance.docker_container_exist?
         | 
| 21 | 
            +
                    remove if options[:clear] && instance.docker_container_exist?
         | 
| 22 | 
            +
                    if instance.docker_container_exist?
         | 
| 23 | 
            +
                      run_start
         | 
| 24 | 
            +
                    else
         | 
| 25 | 
            +
                      run_run
         | 
| 26 | 
            +
                    end
         | 
| 27 | 
            +
                  end
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  def run_run
         | 
| 30 | 
            +
                    infom "\"docker run #{instance.docker_container_name}...\""
         | 
| 31 | 
            +
                    ::Avm::Executables.docker.command.append(run_run_arguments).system!
         | 
| 32 | 
            +
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  def run_start
         | 
| 35 | 
            +
                    infom "\"docker start #{instance.docker_container_name}...\""
         | 
| 36 | 
            +
                    ::Avm::Executables.docker.command.append(run_start_arguments).system!
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  def run_run_arguments
         | 
| 40 | 
            +
                    ['run', '-it', '--name', instance.docker_container_name] + instance.docker_run_arguments +
         | 
| 41 | 
            +
                      [instance.docker_image.tag]
         | 
| 42 | 
            +
                  end
         | 
| 43 | 
            +
             | 
| 44 | 
            +
                  def run_start_arguments
         | 
| 45 | 
            +
                    ['start', '-ai', instance.docker_container_name]
         | 
| 46 | 
            +
                  end
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
              end
         | 
| 49 | 
            +
            end
         | 
| @@ -0,0 +1,50 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
            require 'avm/executables'
         | 
| 5 | 
            +
            require 'avm/patches/object/template'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module Avm
         | 
| 8 | 
            +
              module Docker
         | 
| 9 | 
            +
                class Image
         | 
| 10 | 
            +
                  def build(extra_args = [])
         | 
| 11 | 
            +
                    on_build_dir do
         | 
| 12 | 
            +
                      template.apply(self, build_dir)
         | 
| 13 | 
            +
                      run_docker_build(extra_args)
         | 
| 14 | 
            +
                    end
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  def push
         | 
| 18 | 
            +
                    ::Avm::Executables.docker.command.append(['push', tag]).system!
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  def read_entry(path, _options = {})
         | 
| 22 | 
            +
                    method = path.gsub('.', '_')
         | 
| 23 | 
            +
                    return send(method) if respond_to?(path, true)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
                    raise "Method \"#{method}\" not found for entry \"#{path}\""
         | 
| 26 | 
            +
                  end
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                  def run(instance)
         | 
| 29 | 
            +
                    run_run(instance) if container_exist?(instance)
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  private
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  attr_reader :build_dir
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                  def run_docker_build(extra_args)
         | 
| 37 | 
            +
                    ::Avm::Executables.docker.command.append(
         | 
| 38 | 
            +
                      ['build', '-t', tag] + extra_args + [build_dir]
         | 
| 39 | 
            +
                    ).system!
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  def on_build_dir
         | 
| 43 | 
            +
                    @build_dir = ::Dir.mktmpdir
         | 
| 44 | 
            +
                    yield
         | 
| 45 | 
            +
                  ensure
         | 
| 46 | 
            +
                    ::FileUtils.rm_rf(@build_dir)
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
              end
         | 
| 50 | 
            +
            end
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Avm
         | 
| 6 | 
            +
              module Docker
         | 
| 7 | 
            +
                class Registry
         | 
| 8 | 
            +
                  class << self
         | 
| 9 | 
            +
                    def default
         | 
| 10 | 
            +
                      @default ||= new(::Avm.configs.read_entry('docker.registry.name'))
         | 
| 11 | 
            +
                    end
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                  common_constructor :name
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                  def to_s
         | 
| 17 | 
            +
                    name
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  def sub(suffix)
         | 
| 21 | 
            +
                    self.class.new("#{name}#{suffix}")
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| @@ -0,0 +1,76 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/console/docopt_runner'
         | 
| 4 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 5 | 
            +
            require 'avm/docker/registry'
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            module Avm
         | 
| 8 | 
            +
              module Docker
         | 
| 9 | 
            +
                class Runner < ::EacRubyUtils::Console::DocoptRunner
         | 
| 10 | 
            +
                  enable_console_speaker
         | 
| 11 | 
            +
                  enable_simple_cache
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                  DOC = <<~DOCOPT
         | 
| 14 | 
            +
                    Manipulate Docker images.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
                    Usage:
         | 
| 17 | 
            +
                      __PROGRAM__ [options] [-B <build-arg>...]
         | 
| 18 | 
            +
                      __PROGRAM__ -h | --help
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                    Options:
         | 
| 21 | 
            +
                      -h --help     Show this help.
         | 
| 22 | 
            +
                      -n --registry-name=<registry-name>    Docker registry's name.
         | 
| 23 | 
            +
                      -p --push     Push the image to Docker registry.
         | 
| 24 | 
            +
                      -r --run      Run or start a container with builded image.
         | 
| 25 | 
            +
                      -B --build-arg=<build-arg>  Argument for "docker build".
         | 
| 26 | 
            +
                      -c --clear  Remove container if exist before run.
         | 
| 27 | 
            +
                  DOCOPT
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                  def run
         | 
| 30 | 
            +
                    setup
         | 
| 31 | 
            +
                    banner
         | 
| 32 | 
            +
                    build
         | 
| 33 | 
            +
                    push
         | 
| 34 | 
            +
                    container_run
         | 
| 35 | 
            +
                  end
         | 
| 36 | 
            +
             | 
| 37 | 
            +
                  private
         | 
| 38 | 
            +
             | 
| 39 | 
            +
                  def setup
         | 
| 40 | 
            +
                    instance.docker_registry = registry
         | 
| 41 | 
            +
                  end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  def banner
         | 
| 44 | 
            +
                    infov 'Registry name', registry
         | 
| 45 | 
            +
                    infov 'Image name', instance.docker_image.tag
         | 
| 46 | 
            +
                    infov 'Build arguments', build_args
         | 
| 47 | 
            +
                  end
         | 
| 48 | 
            +
             | 
| 49 | 
            +
                  def build
         | 
| 50 | 
            +
                    instance.docker_image.build(build_args)
         | 
| 51 | 
            +
                  end
         | 
| 52 | 
            +
             | 
| 53 | 
            +
                  def build_args
         | 
| 54 | 
            +
                    options.fetch('--build-arg')
         | 
| 55 | 
            +
                  end
         | 
| 56 | 
            +
             | 
| 57 | 
            +
                  def push
         | 
| 58 | 
            +
                    instance.docker_image.push if options.fetch('--push')
         | 
| 59 | 
            +
                  end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                  def container_run
         | 
| 62 | 
            +
                    instance.docker_container.run(clear: options.fetch('--clear')) if options.fetch('--run')
         | 
| 63 | 
            +
                  end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                  def registry_uncached
         | 
| 66 | 
            +
                    options.fetch('--registry-name').if_present(::Avm::Docker::Registry.default) do |v|
         | 
| 67 | 
            +
                      ::Avm::Docker::Registry.new(v)
         | 
| 68 | 
            +
                    end
         | 
| 69 | 
            +
                  end
         | 
| 70 | 
            +
             | 
| 71 | 
            +
                  def instance
         | 
| 72 | 
            +
                    context(:instance)
         | 
| 73 | 
            +
                  end
         | 
| 74 | 
            +
                end
         | 
| 75 | 
            +
              end
         | 
| 76 | 
            +
            end
         | 
    
        data/lib/avm/executables.rb
    CHANGED
    
    
    
        data/lib/avm/instances/base.rb
    CHANGED
    
    | @@ -11,11 +11,12 @@ module Avm | |
| 11 11 | 
             
                  include ::EacRubyUtils::Listable
         | 
| 12 12 | 
             
                  include ::EacRubyUtils::SimpleCache
         | 
| 13 13 | 
             
                  include ::Avm::Instances::Base::AutoValues
         | 
| 14 | 
            +
                  include ::Avm::Instances::Base::Dockerizable
         | 
| 14 15 | 
             
                  include ::Avm::Instances::Entries
         | 
| 15 16 |  | 
| 16 17 | 
             
                  lists.add_string :access, :local, :ssh
         | 
| 17 18 |  | 
| 18 | 
            -
                  ID_PATTERN = /\A([a- | 
| 19 | 
            +
                  ID_PATTERN = /\A([a-z0-9]+(?:\-[a-z0-9]+)*)_(.+)\z/.freeze
         | 
| 19 20 |  | 
| 20 21 | 
             
                  class << self
         | 
| 21 22 | 
             
                    def by_id(id)
         | 
| @@ -0,0 +1,39 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'avm/docker/container'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Avm
         | 
| 6 | 
            +
              module Instances
         | 
| 7 | 
            +
                class Base
         | 
| 8 | 
            +
                  module Dockerizable
         | 
| 9 | 
            +
                    enable_simple_cache
         | 
| 10 | 
            +
                    attr_reader :docker_registry
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                    def docker_registry=(new_value)
         | 
| 13 | 
            +
                      @docker_registry = new_value
         | 
| 14 | 
            +
                      reset_cache
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                    def docker_container_exist?
         | 
| 18 | 
            +
                      ::Avm::Executables.docker.command.append(
         | 
| 19 | 
            +
                        ['ps', '-qaf', "name=#{docker_container_name}"]
         | 
| 20 | 
            +
                      ).execute!.present?
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
             | 
| 23 | 
            +
                    def docker_container_name
         | 
| 24 | 
            +
                      id
         | 
| 25 | 
            +
                    end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                    private
         | 
| 28 | 
            +
             | 
| 29 | 
            +
                    def docker_container_uncached
         | 
| 30 | 
            +
                      ::Avm::Docker::Container.new(self)
         | 
| 31 | 
            +
                    end
         | 
| 32 | 
            +
             | 
| 33 | 
            +
                    def docker_image_uncached
         | 
| 34 | 
            +
                      docker_image_class.new(docker_registry)
         | 
| 35 | 
            +
                    end
         | 
| 36 | 
            +
                  end
         | 
| 37 | 
            +
                end
         | 
| 38 | 
            +
              end
         | 
| 39 | 
            +
            end
         | 
| @@ -0,0 +1,25 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'avm/instances/base'
         | 
| 4 | 
            +
            require 'avm/stereotypes/eac_ubuntu_base0/docker_image'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Avm
         | 
| 7 | 
            +
              module Stereotypes
         | 
| 8 | 
            +
                module EacRedmineBase0
         | 
| 9 | 
            +
                  class Instance < ::Avm::Instances::Base
         | 
| 10 | 
            +
                    def docker_image_class
         | 
| 11 | 
            +
                      ::Avm::Stereotypes::EacUbuntuBase0::DockerImage
         | 
| 12 | 
            +
                    end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
                    def docker_run_arguments
         | 
| 15 | 
            +
                      [
         | 
| 16 | 
            +
                        '--volume', "#{read_entry(:fs_path)}:/home/myuser/eac_redmine_base0",
         | 
| 17 | 
            +
                        '--publish', "#{read_entry(:ssh_port)}:22",
         | 
| 18 | 
            +
                        '--publish', "#{read_entry(:http_port)}:80",
         | 
| 19 | 
            +
                        '--publish', "#{read_entry(:https_port)}:443"
         | 
| 20 | 
            +
                      ]
         | 
| 21 | 
            +
                    end
         | 
| 22 | 
            +
                  end
         | 
| 23 | 
            +
                end
         | 
| 24 | 
            +
              end
         | 
| 25 | 
            +
            end
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/core_ext'
         | 
| 4 | 
            +
            require 'avm/docker/image'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            module Avm
         | 
| 7 | 
            +
              module Stereotypes
         | 
| 8 | 
            +
                module EacUbuntuBase0
         | 
| 9 | 
            +
                  class DockerImage < ::Avm::Docker::Image
         | 
| 10 | 
            +
                    enable_simple_cache
         | 
| 11 | 
            +
                    common_constructor :registry
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                    def tag
         | 
| 14 | 
            +
                      "#{registry.name}:eac_ubuntu_base0"
         | 
| 15 | 
            +
                    end
         | 
| 16 | 
            +
                  end
         | 
| 17 | 
            +
                end
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
| @@ -0,0 +1,34 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'eac_ruby_utils/console/docopt_runner'
         | 
| 4 | 
            +
            require 'eac_ruby_utils/simple_cache'
         | 
| 5 | 
            +
            require 'avm/stereotypes/eac_redmine_base0/instance'
         | 
| 6 | 
            +
            require 'eac_ruby_utils/require_sub'
         | 
| 7 | 
            +
            ::EacRubyUtils.require_sub(__FILE__)
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            module Avm
         | 
| 10 | 
            +
              module Tools
         | 
| 11 | 
            +
                class Runner < ::EacRubyUtils::Console::DocoptRunner
         | 
| 12 | 
            +
                  class EacRedmineBase0 < ::EacRubyUtils::Console::DocoptRunner
         | 
| 13 | 
            +
                    include ::EacRubyUtils::SimpleCache
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    DOC = <<~DOCOPT
         | 
| 16 | 
            +
                      Utilities for EacRedmineBase0 instances.
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                      Usage:
         | 
| 19 | 
            +
                        __PROGRAM__ [options] <instance_id> __SUBCOMMANDS__
         | 
| 20 | 
            +
                        __PROGRAM__ -h | --help
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                      Options:
         | 
| 23 | 
            +
                        -h --help             Show this screen.
         | 
| 24 | 
            +
                    DOCOPT
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                    private
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                    def instance_uncached
         | 
| 29 | 
            +
                      ::Avm::Stereotypes::EacRedmineBase0::Instance.by_id(options['<instance_id>'])
         | 
| 30 | 
            +
                    end
         | 
| 31 | 
            +
                  end
         | 
| 32 | 
            +
                end
         | 
| 33 | 
            +
              end
         | 
| 34 | 
            +
            end
         | 
| @@ -0,0 +1,14 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'avm/docker/runner'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            module Avm
         | 
| 6 | 
            +
              module Tools
         | 
| 7 | 
            +
                class Runner < ::EacRubyUtils::Console::DocoptRunner
         | 
| 8 | 
            +
                  class EacRedmineBase0 < ::EacRubyUtils::Console::DocoptRunner
         | 
| 9 | 
            +
                    class Docker < ::Avm::Docker::Runner
         | 
| 10 | 
            +
                    end
         | 
| 11 | 
            +
                  end
         | 
| 12 | 
            +
                end
         | 
| 13 | 
            +
              end
         | 
| 14 | 
            +
            end
         | 
    
        data/lib/avm/tools/version.rb
    CHANGED
    
    
| @@ -0,0 +1,11 @@ | |
| 1 | 
            +
            FROM ubuntu:bionic
         | 
| 2 | 
            +
            RUN apt-get update -y
         | 
| 3 | 
            +
            RUN apt-get install -y sudo tzdata
         | 
| 4 | 
            +
            RUN /usr/sbin/useradd --shell /bin/bash --home-dir /home/myuser --create-home myuser
         | 
| 5 | 
            +
            RUN /bin/echo 'myuser:myuser' | /usr/sbin/chpasswd
         | 
| 6 | 
            +
            RUN /bin/chown myuser:myuser /home/myuser -R
         | 
| 7 | 
            +
            RUN /bin/echo "myuser ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/myuser_all_nopasswd && chmod 0440 /etc/sudoers.d/myuser_all_nopasswd
         | 
| 8 | 
            +
            USER myuser
         | 
| 9 | 
            +
            WORKDIR /home/myuser
         | 
| 10 | 
            +
            ENTRYPOINT /bin/bash
         | 
| 11 | 
            +
            CMD apt-get update -y && apt-get dist-upgrade -y
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: avm-tools
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.22.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Esquilo Azul Company
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019-11- | 
| 11 | 
            +
            date: 2019-11-14 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: aranha-parsers
         | 
| @@ -180,6 +180,11 @@ files: | |
| 180 180 | 
             
            - lib/avm/data/package/dump.rb
         | 
| 181 181 | 
             
            - lib/avm/data/package/load.rb
         | 
| 182 182 | 
             
            - lib/avm/data/unit.rb
         | 
| 183 | 
            +
            - lib/avm/docker.rb
         | 
| 184 | 
            +
            - lib/avm/docker/container.rb
         | 
| 185 | 
            +
            - lib/avm/docker/image.rb
         | 
| 186 | 
            +
            - lib/avm/docker/registry.rb
         | 
| 187 | 
            +
            - lib/avm/docker/runner.rb
         | 
| 183 188 | 
             
            - lib/avm/executables.rb
         | 
| 184 189 | 
             
            - lib/avm/files.rb
         | 
| 185 190 | 
             
            - lib/avm/files/rotate.rb
         | 
| @@ -210,6 +215,7 @@ files: | |
| 210 215 | 
             
            - lib/avm/instances/base/auto_values/source.rb
         | 
| 211 216 | 
             
            - lib/avm/instances/base/auto_values/system.rb
         | 
| 212 217 | 
             
            - lib/avm/instances/base/auto_values/web.rb
         | 
| 218 | 
            +
            - lib/avm/instances/base/dockerizable.rb
         | 
| 213 219 | 
             
            - lib/avm/instances/entries.rb
         | 
| 214 220 | 
             
            - lib/avm/instances/entries/entry_reader.rb
         | 
| 215 221 | 
             
            - lib/avm/patches.rb
         | 
| @@ -221,9 +227,12 @@ files: | |
| 221 227 | 
             
            - lib/avm/stereotypes/eac_rails_base0/apache_host.rb
         | 
| 222 228 | 
             
            - lib/avm/stereotypes/eac_rails_base0/deploy.rb
         | 
| 223 229 | 
             
            - lib/avm/stereotypes/eac_rails_base0/instance.rb
         | 
| 230 | 
            +
            - lib/avm/stereotypes/eac_redmine_base0.rb
         | 
| 231 | 
            +
            - lib/avm/stereotypes/eac_redmine_base0/instance.rb
         | 
| 224 232 | 
             
            - lib/avm/stereotypes/eac_ubuntu_base0.rb
         | 
| 225 233 | 
             
            - lib/avm/stereotypes/eac_ubuntu_base0/apache.rb
         | 
| 226 234 | 
             
            - lib/avm/stereotypes/eac_ubuntu_base0/apache/site.rb
         | 
| 235 | 
            +
            - lib/avm/stereotypes/eac_ubuntu_base0/docker_image.rb
         | 
| 227 236 | 
             
            - lib/avm/stereotypes/eac_webapp_base0.rb
         | 
| 228 237 | 
             
            - lib/avm/stereotypes/eac_webapp_base0/apache_host.rb
         | 
| 229 238 | 
             
            - lib/avm/stereotypes/eac_webapp_base0/deploy.rb
         | 
| @@ -244,6 +253,8 @@ files: | |
| 244 253 | 
             
            - lib/avm/tools/runner/eac_rails_base0.rb
         | 
| 245 254 | 
             
            - lib/avm/tools/runner/eac_rails_base0/apache_host.rb
         | 
| 246 255 | 
             
            - lib/avm/tools/runner/eac_rails_base0/deploy.rb
         | 
| 256 | 
            +
            - lib/avm/tools/runner/eac_redmine_base0.rb
         | 
| 257 | 
            +
            - lib/avm/tools/runner/eac_redmine_base0/docker.rb
         | 
| 247 258 | 
             
            - lib/avm/tools/runner/eac_wordpress_base0.rb
         | 
| 248 259 | 
             
            - lib/avm/tools/runner/eac_wordpress_base0/apache_host.rb
         | 
| 249 260 | 
             
            - lib/avm/tools/runner/eac_wordpress_base0/data.rb
         | 
| @@ -261,6 +272,7 @@ files: | |
| 261 272 | 
             
            - lib/avm/tools/runner/git/issue/complete.rb
         | 
| 262 273 | 
             
            - lib/avm/tools/version.rb
         | 
| 263 274 | 
             
            - template/avm/stereotypes/eac_rails_base0/deploy/config/database.yml.template
         | 
| 275 | 
            +
            - template/avm/stereotypes/eac_ubuntu_base0/docker_image/Dockerfile
         | 
| 264 276 | 
             
            - template/avm/stereotypes/eac_webapp_base0/apache_host/no_ssl.conf
         | 
| 265 277 | 
             
            - template/avm/stereotypes/eac_wordpress_base0/deploy/wp-config.php.template
         | 
| 266 278 | 
             
            homepage: 
         |