Sha256: 5ac83456ebb73cc7d6f986e3d0d6a9b6efafdcb79f54fc562aae9cae532d3b22

Contents?: true

Size: 1002 Bytes

Versions: 38

Compression:

Stored size: 1002 Bytes

Contents

module Ufo
  class Docker::Dockerfile
    def initialize(full_image_name, options={})
      @full_image_name = full_image_name
      @options = options
    end

    def update
      write_new_dockerfile
    end

    def current_dockerfile
      @current_dockerfile ||= IO.read(dockerfile_path)
    end

    def dockerfile_path
      "#{Ufo.root}/Dockerfile"
    end

    def new_dockerfile
      lines = current_dockerfile.split("\n")
      # replace FROM line
      new_lines = lines.map do |line|
                    if line =~ /^FROM /
                      "FROM #{@full_image_name}"
                    else
                      line
                    end
                  end
      new_lines.join("\n") + "\n"
    end

    def write_new_dockerfile
      IO.write(dockerfile_path, new_dockerfile)
      unless @options[:mute]
        puts "The Dockerfile FROM statement has been updated with the latest base image:".green
        puts "  #{@full_image_name}".green
      end
    end
  end
end

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
ufo-4.1.10 lib/ufo/docker/dockerfile.rb
ufo-4.1.9 lib/ufo/docker/dockerfile.rb
ufo-4.1.8 lib/ufo/docker/dockerfile.rb
ufo-4.1.7 lib/ufo/docker/dockerfile.rb
ufo-4.1.6 lib/ufo/docker/dockerfile.rb
ufo-4.1.5 lib/ufo/docker/dockerfile.rb
ufo-4.1.4 lib/ufo/docker/dockerfile.rb
ufo-4.1.2 lib/ufo/docker/dockerfile.rb
ufo-4.1.1 lib/ufo/docker/dockerfile.rb
ufo-4.1.0 lib/ufo/docker/dockerfile.rb
ufo-4.0.3 lib/ufo/docker/dockerfile.rb
ufo-4.0.2 lib/ufo/docker/dockerfile.rb
ufo-4.0.1 lib/ufo/docker/dockerfile.rb
ufo-4.0.0 lib/ufo/docker/dockerfile.rb
ufo-3.5.7 lib/ufo/docker/dockerfile.rb
ufo-3.5.6 lib/ufo/docker/dockerfile.rb
ufo-3.5.5 lib/ufo/docker/dockerfile.rb
ufo-3.5.4 lib/ufo/docker/dockerfile.rb
ufo-3.5.3 lib/ufo/docker/dockerfile.rb
ufo-3.5.2 lib/ufo/docker/dockerfile.rb