class Create

Public Class Methods

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

Public Instance Methods

app(app_name) click to toggle source
# File lib/commands/create.rb, line 41
def app(app_name)
  subdomain = options.fetch(subdomain,app_name.gsub(/\s/,"-").downcase)
  @domain = "#{subdomain}.#{config[:host]}"
  @app_name = app_name
  @user_email,@user_name = config.values_at(:email,:name)
  @base = options[:base]
  app_path = "#{apps_dir}/#{@app_name}"
  template "docker-compose.yml.erb","#{app_path}/docker-compose.yml"
  empty_directory "#{app_path}/administration/installation"
  empty_directory "#{app_path}/administration/hooks/backup.d"
  empty_directory "#{app_path}/administration/hooks/restore.d"
  template "Dockerfile.erb","#{app_path}/Dockerfile" if options[:dockerfile]
  add_packages(app_path,options[:packages]) unless options[:packages].empty?
  append_to_file "#{routine_dir}/backup_routine", "dockersitter backup_app #{app_name}"
  create_file "#{vhost_dir}/#{@domain}"
  if options[:cert]
    FileUtils.cd "#{admin_dir}/ca" do
            puts `./sign.sh #{@domain}`
    end
    chmod "#{proxy_dir}/certs/#{@domain}.key",0600
  end
end
image(image_name) click to toggle source
# File lib/commands/create.rb, line 105
def image(image_name)
  @user_email,@user_name = config.values_at(:email,:name)
  @base = options[:base]
  image_path = "#{base_images_dir}/#{image_name}/v1.0"
  empty_directory "#{image_path}/administration/installation"
  template "Dockerfile.erb","#{image_path}/Dockerfile"
  add_packages(image_path) unless options[:packages].empty?
  add_trust(image_path)
  @image_name = image_name
  @version = "1.0"
  template "build.erb", "#{image_path}/build.sh"
  FileUtils.chmod 0755, "#{image_path}/build.sh"
end
runner(runner_name,token) click to toggle source
# File lib/commands/create.rb, line 85
def runner(runner_name,token)
  @app_name = runner_name
  @user_email,@user_name = config.values_at(:email,:name)
  @base = options[:base]
  runner_path = "#{runner_dir}/#{@app_name}"
  template "docker-compose.yml.erb","#{runner_path}/docker-compose.yml"
  empty_directory "#{runner_path}/administration/installation"
  template "Dockerfile.erb","#{app_path}/Dockerfile" if options[:dockerfile]
  add_packages(runner_path,options[:packages]) unless options[:packages].empty?
  FileUtils.cd(runner_path) do 
    command = %Q(register --non-interactive 
                 --url "https://#{options['server_name']}" 
                 --registration-token "#{options['token']}" 
                 --description "multi-runner" 
                 --executor "shell")
    puts `docker-compose run service #{command}`
  end
end