class Container::Backup::Directories

Public Instance Methods

backup() click to toggle source
# File lib/container/steps/directories.rb, line 17
def backup
  stop
  mkdir_p(backup_path)
  backup_volume
  start
end
backup_volume() click to toggle source
# File lib/container/steps/directories.rb, line 30
def backup_volume
  tar_volume('c')
end
recover_volume() click to toggle source
# File lib/container/steps/directories.rb, line 34
def recover_volume
  tar_volume('x')
end
remove_volume() click to toggle source
# File lib/container/steps/directories.rb, line 38
def remove_volume
  puts "Remove all files from #{volume} (y/n)?"
  if gets.chomp  == 'y'
    sh "docker run --rm --volumes-from #{container} ubuntu bash -c \"rm -rf #{volume}\""
  else
    exit
  end
end
restore() click to toggle source
# File lib/container/steps/directories.rb, line 24
def restore
  stop
  remove_volume
  recover_volume
  start
end
start() click to toggle source
# File lib/container/steps/directories.rb, line 9
def start
  sh "#{DockerCompose.docker_compose} up -d #{container}"
end
stop() click to toggle source
  • “backup={directories: [/var/www/html/libraries, /var/www/html/modules, /var/www/html/profiles, /var/www/html/themes, /var/www/html/sites]}”

# File lib/container/steps/directories.rb, line 5
def stop
  sh "#{DockerCompose.docker_compose} stop #{container}"
end
tar_volume(option) click to toggle source
# File lib/container/steps/directories.rb, line 13
def tar_volume(option)
  raise "Invalid tar option #{option}" unless option =~ /\A[cx]\z/
  sh "docker run --rm --volumes-from #{container} -v #{backup_path}:/backup ubuntu bash -c \"cd #{volume} && tar #{option}vf /backup/#{volume}.tar #{option == 'c' ? ' .' : ''}\""
end