class Init

Public Class Methods

source_root() click to toggle source
# File lib/commands/init.rb, line 9
def self.source_root
  File.expand_path('../templates',__dir__)
end

Public Instance Methods

create_base_image() click to toggle source
# File lib/commands/init.rb, line 40
def create_base_image
  @user_email,@user_name = config.values_at(:email,:name)
  image_name = 'base'
  image_path = "#{base_images_dir}/#{image_name}/v1.0"
  @image_name = image_name
  @version = "1.0"
  @base = "ubuntu:14.04"
  create_image(image_path,'curl','git')
end
create_base_runner() click to toggle source
# File lib/commands/init.rb, line 50
def create_base_runner
  @image_name = 'runner_base'
  image_path = "#{base_images_dir}/#{@image_name}/v1.0"
  @version = "1.0"
  @base = "ayufan/gitlab-ci-multi-runner:latest"
  create_image(image_path,'java','node','ruby','ruby_buildtools','node_buildtools')
end
create_ca() click to toggle source
# File lib/commands/init.rb, line 25
def create_ca
  FileUtils.cd 'docker/admin/ca' do 
    puts `openssl req -x509 -newkey rsa:4096 -keyout rootCA.key -out rootCA.crt -days 7800 -sha256`
  end
  chmod 'docker/admin/ca/rootCA.key',0600
  chmod 'docker/admin/ca/sign.sh',0755
  FileUtils.cd 'docker' do 
    generate_ca_installer
  end
end
create_image(image_path,*packages) click to toggle source
# File lib/commands/init.rb, line 59
def create_image(image_path,*packages)
  empty_directory "#{image_path}/administration/installation"
  template "Dockerfile.erb","#{image_path}/Dockerfile"
  add_packages(image_path,*packages)
  FileUtils.cp("#{admin_dir}/trust.sh","#{image_path}/administration/trust.sh")
  FileUtils.mkdir("#{image_path}/administration/certificates")
  FileUtils.cp("#{admin_dir}/ca/rootCA.crt","#{image_path}/administration/certificates/rootCA.crt")
  template "build.erb", "#{image_path}/build.sh"
  FileUtils.chmod 0755, "#{image_path}/build.sh"
end
init_git() click to toggle source
# File lib/commands/init.rb, line 36
def init_git
  puts `git init docker`
end
project_structure() click to toggle source
# File lib/commands/init.rb, line 13
def project_structure
  empty_directory "docker/apps"
  empty_directory "docker/attic"
  empty_directory "docker/backup"
  empty_directory "docker/base_images"
  directory "admin","docker/admin"
  empty_directory "docker/ci_runner"
  empty_directory "docker/proxy/certs"
  empty_directory "docker/proxy/vhosts.d"
  copy_file "gitignore","docker/.gitignore"
end