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