Class: Container::Backup::Mongo

Inherits:
Step
  • Object
show all
Defined in:
lib/container/steps/databases.rb

Instance Method Summary collapse

Methods inherited from Step

#backup_path, #container, #image, #initialize, #params, #perform

Constructor Details

This class inherits a constructor from Container::Backup::Step

Instance Method Details

#backupObject

docs.mongodb.com/database-tools/mongodump/#bin.mongodump docs.mongodb.com/database-tools/mongorestore/#bin.mongorestore

- "backup={volumes: [mongo_data],databases: [mongo: {user: ${MONGO_INITDB_ROOT_USERNAME}, password: ${MONGO_INITDB_ROOT_PASSWORD}}]}"


46
47
48
49
50
51
# File 'lib/container/steps/databases.rb', line 46

def backup
  #  mongodump --host="mongodb0.example.com" --port=27017 [additional options]
  stop
  sh "docker run -it --rm --volumes-from #{container} #{image} bash -c 'mongodump -v --host=#{params['host'] || 'localhost'} --port=#{params['port'] || 27017} --out=/#{backup_path}'"
  start
end

#restoreObject



52
53
54
55
56
57
58
# File 'lib/container/steps/databases.rb', line 52

def restore
  # mongorestore --username joe --password secret1 --host=mongodb0.example.com --port=27017
  # docker run -it --rm --link mongo:mongo -v /tmp/mongodump:/tmp mongo bash -c 'mongorestore -v --host $MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT /tmp'
  stop
  sh "docker run -it --rm --volumes-from #{container} #{image} bash -c 'mongorestore -v --host=#{params['host'] || 'localhost'} --port=#{params['port'] || 27017} /#{backup_path}'"
  start
end