Sha256: 60644ca82bba1e5741d5bc633f1de0cb55500e9bb6aacbbf9d0106b32f5e5a3a

Contents?: true

Size: 1012 Bytes

Versions: 24

Compression:

Stored size: 1012 Bytes

Contents

module Ufo
  class Docker::Dockerfile
    def initialize(full_image_name, options={})
      @full_image_name, @options = full_image_name, 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:".color(:green)
        puts "  #{@full_image_name}".color(:green)
      end
    end
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
ufo-5.0.7 lib/ufo/docker/dockerfile.rb
ufo-5.0.6 lib/ufo/docker/dockerfile.rb
ufo-5.0.5 lib/ufo/docker/dockerfile.rb
ufo-5.0.4 lib/ufo/docker/dockerfile.rb
ufo-5.0.3 lib/ufo/docker/dockerfile.rb
ufo-5.0.2 lib/ufo/docker/dockerfile.rb
ufo-5.0.1 lib/ufo/docker/dockerfile.rb
ufo-5.0.0 lib/ufo/docker/dockerfile.rb
ufo-4.6.3 lib/ufo/docker/dockerfile.rb
ufo-4.6.2 lib/ufo/docker/dockerfile.rb
ufo-4.6.1 lib/ufo/docker/dockerfile.rb
ufo-4.6.0 lib/ufo/docker/dockerfile.rb
ufo-4.5.11 lib/ufo/docker/dockerfile.rb
ufo-4.5.10 lib/ufo/docker/dockerfile.rb
ufo-4.5.9 lib/ufo/docker/dockerfile.rb
ufo-4.5.8 lib/ufo/docker/dockerfile.rb
ufo-4.5.7 lib/ufo/docker/dockerfile.rb
ufo-4.5.6 lib/ufo/docker/dockerfile.rb
ufo-4.5.5 lib/ufo/docker/dockerfile.rb
ufo-4.5.4 lib/ufo/docker/dockerfile.rb