require 'open3' module Smartcloud class Buildpacker < Smartcloud::Base def initialize end def install self.uninstall unless system("docker image inspect smartcloud/buildpacks/rails", [:out, :err] => File::NULL) print "-----> Creating image smartcloud/buildpacks/rails ... " if system("docker image build -t smartcloud/buildpacks/rails \ --build-arg USER_UID=`id -u` \ --build-arg USER_NAME=`id -un` \ #{Smartcloud.config.root_path}/lib/smartcloud/engine/buildpacks/rails", out: File::NULL) puts "done" end end end def uninstall if system("docker image inspect smartcloud/buildpacks/rails", [:out, :err] => File::NULL) print "-----> Removing image smartcloud/buildpacks/rails ... " if system("docker image rm smartcloud/buildpacks/rails", out: File::NULL) puts "done" end end end def pack if File.exist? "bin/rails" rails = Smartcloud::Apps::Rails.new rails.pack end end # These swapfile methods can be used (after required modification), when you need to make swapfile for more memory. # def self.create_swapfile # # Creating swapfile for bundler to work properly # unless system("sudo swapon -s | grep -ci '/swapfile'", out: File::NULL) # print "-----> Creating swap swapfile ... " # system("sudo install -o root -g root -m 0600 /dev/null /swapfile", out: File::NULL) # system("sudo dd if=/dev/zero of=/swapfile bs=1k count=2048k", [:out, :err] => File::NULL) # system("sudo mkswap /swapfile", out: File::NULL) # system("sudo sh -c 'echo \"/swapfile none swap sw 0 0\" >> /etc/fstab'", out: File::NULL) # system("echo 10 | sudo tee /proc/sys/vm/swappiness", out: File::NULL) # system("sudo sed -i '/^vm.swappiness = /d' /etc/sysctl.conf", out: File::NULL) # system("echo vm.swappiness = 10 | sudo tee -a /etc/sysctl.conf", out: File::NULL) # puts "done" # # print "-----> Starting swap swapfile ... " # if system("sudo swapon /swapfile", out: File::NULL) # puts "done" # end # end # end # # def self.destroy_swapfile # if system("sudo swapon -s | grep -ci '/swapfile'", out: File::NULL) # print "-----> Stopping swap swapfile ... " # if system("sudo swapoff /swapfile", out: File::NULL) # system("sudo sed -i '/^vm.swappiness = /d' /etc/sysctl.conf", out: File::NULL) # system("echo 60 | sudo tee /proc/sys/vm/swappiness", out: File::NULL) # puts "done" # # print "-----> Removing swap swapfile ... " # system("sudo sed -i '/^\\/swapfile/d' /etc/fstab", out: File::NULL) # if system("sudo rm /swapfile", out: File::NULL) # puts "done" # end # end # end # end end end