Odoo Backup
A simple docker container that run Odoo backups covering both Odoo files and PostgreSQL db based on docker-pg-backup.
It then copy the backup files on GoogleDrive using drive cli.
Getting the image
There are various ways to get the image onto your system:
The preferred way (but using most bandwidth for the initial image) is to
get our docker trusted build like this:
docker pull martel/odoo-backup:latest
To build the image yourself without apt-cacher (also consumes more bandwidth
since deb packages need to be refetched each time you build) do:
docker build -t martel/odoo-backup .
If you do not wish to do a local checkout first then build directly from github.
git clone git://github.com/martel-innovate/odoo-backup
Run
To create a running container do:
docker run --name="backups"\
           --hostname="pg-backups" \
           --link=watchkeeper_db_1:db \
           -v ${PWD}/backup:/backup \
           -v ${PWD}/credentials.json:/var/credentials.json \
           -i -d martel/pg-backup
In this example I used a volume into which the actual backups will be
stored.
Specifying environment
You can also use the following environment variables to pass a 
user name and password etc for the database connection.
- PGUSER if not set, defaults to : docker
- PGPASSWORD if not set, defaults to : docker
- PGPORT if not set, defaults to : 5432
- PGHOST if not set, defaults to : db
- PGDATABASE if not set, defaults to : db
- ODOO_FILES if not set, defaults to : 1 (it will backup also files in /var/lib/odoo)
- DRIVE_DESTINATION if not set, defaults to : "" (no path, so it will not run a Drive backup)
Example usage:
docker run -e PGUSER=bob -e PGPASSWORD=secret -e ODOO_FILES=1
    -e DRIVE_DESTINATION=path -link db -i -d martel/pg-backup
One other environment variable you may like to set is a prefix for the 
database dumps.
- DUMPPREFIX if not set, defaults to : PG
Example usage:
docker run -e DUMPPREFIX=foo -link db -i -d martel/pg-backup
Here is a more typical example using docker-composer:
For docker-compose.yml:
db:
  image: postgres:9.4
  environment:
    - POSTGRES_USER=docker
    - POSTGRES_PASS=docker
dbbackups:
  image: martel/pg-backup:latest
  hostname: pg-backups
  links:
    - db:db
  volumes:
    - ${PWD}/backup:/var/backup
    - ${PWD}/credentials.json:/var/credentials/credentials.json #TODO document how to create the file
  environment:
    - ODOO_FILES=0
    - DRIVE_DESTINATION=path
    - ODOO_FILES=0
    - DRIVE_DESTINATION=path
    - PGHOST=db
    - PGDB=db
    - PGUSER=docker
    - PGPASSWORD=docker
    - PGPORT=5432
Then run using:
docker-compose up -d dbbackup