class BoshJobDocker::BoshJobDockerFile

Builds a Dockerfile for a BOSH job.

Attributes

docker_file[R]

Public Class Methods

new() click to toggle source
# File lib/bosh_job_docker/bosh_job_docker_file.rb, line 8
def initialize
  @docker_file = DockerFile.new
  add_preamble
end

Public Instance Methods

add_package(package) click to toggle source
# File lib/bosh_job_docker/bosh_job_docker_file.rb, line 13
def add_package(package)
  docker_file.comment(package)
  docker_file.env('BOSH_INSTALL_TARGET', "/var/vcap/packages/#{package}")
  docker_file.run('mkdir $BOSH_INSTALL_TARGET')
  docker_file.run("cd /build/#{package} && bash packaging")
  docker_file.blank_line
end
write(path) click to toggle source
# File lib/bosh_job_docker/bosh_job_docker_file.rb, line 21
def write(path)
  @docker_file.write(path)
end

Private Instance Methods

add_apt_gets() click to toggle source
# File lib/bosh_job_docker/bosh_job_docker_file.rb, line 36
def add_apt_gets # rubocop:disable MethodLength
  docker_file.apt_get(%w(
    build-essential
    cmake
    gettext
    libbz2-dev
    libcap-dev
    libreadline-dev
    libssl-dev
    libxml2-dev
    libxslt1-dev
    zlib1g-dev
    unzip
  ))
end
add_preamble() click to toggle source
# File lib/bosh_job_docker/bosh_job_docker_file.rb, line 27
def add_preamble
  docker_file.from('ubuntu')
  docker_file.run('apt-get update')
  add_apt_gets
  docker_file.add('build', '/build')
  docker_file.run('mkdir -p /var/vcap/packages')
  docker_file.blank_line
end