Sha256: bf7113febd0696b45fd3236fb07c170ffac7ebdf8f6bf1bee3cdce8f048b9edc

Contents?: true

Size: 1.83 KB

Versions: 4

Compression:

Stored size: 1.83 KB

Contents

module Ufo
  class Docker < Command
    desc "build", "Build docker image."
    long_desc Help.text("docker:build")
    option :push, type: :boolean, default: false
    def build
      builder = Docker::Builder.new(options)
      builder.build
      push if options[:push]
    end

    desc "push IMAGE", "Push the docker image."
    long_desc Help.text("docker:push")
    option :push, type: :boolean, default: false
    def push(full_image_name=nil)
      # full_image_name of nil results in defaulting to the last built image by ufo docker build
      pusher = Docker::Pusher.new(full_image_name, options)
      pusher.push
    end

    desc "base", "Build docker image from `Dockerfile.base` and update current `Dockerfile`."
    long_desc Help.text("docker:base")
    option :push, type: :boolean, default: true
    def base
      builder = Docker::Builder.new(options.dup.merge(
        image_namespace: "base",
        dockerfile: "Dockerfile.base"
      ))
      builder.build
      builder.push if options[:push]
      builder.update_dockerfile
      Docker::Cleaner.new(builder.image_name, options.merge(tag_prefix: "base")).cleanup
      Ecr::Cleaner.new(builder.image_name, options.merge(tag_prefix: "base")).cleanup
    end

    desc "name", "Display the full docker image with tag that was last generated."
    option :generate, type: :boolean, default: false, desc: "Generate a name without storing it"
    long_desc Help.text("docker:name")
    def name
      full_image_name = Docker::Builder.new(options).full_image_name
      puts full_image_name
    end

    desc "clean IMAGE_NAME", "Clean up old images.  Keeps a specified amount."
    option :keep, type: :numeric, default: 3
    option :tag_prefix, default: "ufo"
    long_desc Help.text("docker:clean")
    def clean(image_name)
      Docker::Cleaner.new(image_name, options).cleanup
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ufo-4.5.3 lib/ufo/docker.rb
ufo-4.5.2 lib/ufo/docker.rb
ufo-4.5.1 lib/ufo/docker.rb
ufo-4.5.0 lib/ufo/docker.rb