class Bosh::Gen::Generators::PackageDockerImageGenerator

Public Class Methods

source_root() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 19
def self.source_root
  File.join(File.dirname(__FILE__), "package_docker_image_generator", "templates")
end

Public Instance Methods

check_name() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 29
def check_name
  raise Thor::Error.new("'#{name}' is not a valid BOSH id") unless name.bosh_valid_id?
end
check_root_is_release() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 23
def check_root_is_release
  unless File.exist?("jobs") && File.exist?("packages")
    raise Thor::Error.new("run inside a BOSH release project")
  end
end
docker_save() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 33
def docker_save
  FileUtils.mkdir_p("blobs/docker-images")
  RakeHelper.sh "docker pull #{docker_image}"
  RakeHelper.sh "docker save #{docker_image} > blobs/docker-images/#{image_filename}"
end
jobs() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 39
def jobs
  directory "jobs"
end
packages() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 43
def packages
  directory "packages"
end
readme() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 47
      def readme
        say "Next steps:", :green
        say "          1. To use this BOSH release, first upload it and the docker release to your BOSH:
            bosh upload release https://bosh.io/releases/cloudfoundry-community/consul-docker
            bosh upload release https://bosh.io/d/github.com/cf-platform-eng/docker-boshrelease

          2. To use the docker image, your deployment job needs to start with the following:

            jobs:
            - name: some_job
            templates:
              # run docker daemon
              - {name: docker, release: docker}
              # warm docker image cache from bosh package
              - {name: #{job_name}, release: #{project_name_hyphenated}}

          3. To simply run a single container, try the 'containers' job from 'docker' release

            https://github.com/cloudfoundry-community/consul-docker-boshrelease/blob/master/templates/jobs.yml#L18-L40


".gsub(/^        /, '')
      end

Private Instance Methods

image_filename() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 93
def image_filename
  "#{image_name}.tgz"
end
image_name() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 89
def image_name
  docker_image.gsub(/\W+/, '_')
end
job_name() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 97
def job_name
  "#{image_name}_image"
end
package_name() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 85
def package_name
  name
end
project_name() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 77
def project_name
  @project_name ||= File.basename(root_path).gsub(/-(?:boshrelease|release)$/, '')
end
project_name_hyphenated() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 81
def project_name_hyphenated
  project_name.gsub(/[^A-Za-z0-9]+/, '-')
end
root_path() click to toggle source
# File lib/bosh/gen/generators/package_docker_image_generator.rb, line 73
def root_path
  File.expand_path(".")
end