class Vtasks::Docker::Image::Build

Docker Build class

Attributes

build_date[R]
build_tag[R]
image[R]
path[R]

Public Class Methods

new(image, path, args={}) click to toggle source
# File lib/vtasks/docker/image/build.rb, line 14
def initialize(image, path, args={})
  @image      ||= image
  @path       ||= path
  @build_date ||= args.fetch(:build_date)
  @build_tag  ||= args.fetch(:build_tag)

  @cmd = 'docker image build'
end

Public Instance Methods

with_arguments() click to toggle source
# File lib/vtasks/docker/image/build.rb, line 36
def with_arguments
  build_args = {
    'BUILD_DATE' => build_date,
    'VERSION'    => build_tag,
    'VCS_URL'    => git_url,
    'VCS_REF'    => git_commit
  }

  build_args.map do |key, value|
    @cmd += " --build-arg #{key}=#{value}"
  end

  without_arguments
end
without_arguments() click to toggle source
# File lib/vtasks/docker/image/build.rb, line 23
def without_arguments
  info "Pulling #{image}" # to speed up the building process
  system "docker pull #{image}" unless ENV['DOCKER_NO_CACHE']

  info "Building #{image}:#{build_tag}"
  system "#{@cmd} -t #{image}:#{build_tag} #{path}"

  if $?.exitstatus != 0
    error 'Build command failed!'
    abort
  end
end