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