class FPM::Dockery::CLI::BaseCommand

Public Instance Methods

create_builder(no_cache) click to toggle source

Create a builder image.

# File lib/fpm/dockery/cli.rb, line 35
def create_builder(no_cache)
  validate_builder!
  cache_option = no_cache ? '--no-cache=true' : ''
  exit_status = Subprocess.run("docker build #{cache_option} -f #{FPM::Dockery.root}/docker/Dockerfile.#{builder} -t fpm-dockery/#{builder} #{FPM::Dockery.root}")
  if exit_status.exitstatus == 0
    info "Build complete"
  else
    info "Build process exited with a non-zero exit code"
    exit exit_status.exitstatus
  end
end
create_builder_if_required() click to toggle source

Create a builder image if it doesn't exist.

# File lib/fpm/dockery/cli.rb, line 26
def create_builder_if_required
  image_check = Subprocess.run("docker images | awk '{print $1}' | grep fpm-dockery/#{builder}")
  unless image_check.exitstatus == 0
    warn "The builder image '#{builder}' does not exist; running the image creation for you"
    create_builder(false)
  end
end
valid_builders() click to toggle source

List all valid builders by listing the Dockerfile.* files in the docker directory.

# File lib/fpm/dockery/cli.rb, line 13
def valid_builders
  Dir.glob("#{FPM::Dockery.root}/docker/Dockerfile.*").map {|f| File.basename(f.gsub('Dockerfile.', ''))}
end
validate_builder!() click to toggle source

Check the builder is one we have a Dockerfile for.

# File lib/fpm/dockery/cli.rb, line 18
def validate_builder!
  unless valid_builders.include?(builder)
    fatal "Image type must be one of: #{valid_builders.join(', ')}"
    exit 1
  end
end