added dbbackups container

This commit is contained in:
meomancer authored and Irwan Fathurrahman committed 2017-10-24 14:57:50 +07:00
1 parent fdc47138c3
commit 9badcf8060
2 files changed
+31 -17

No files matched your search

+11 -17
View File
@@ -47,6 +47,7 @@ web:
@echo "------------------------------------------------------------------"
@docker-compose -p $(PROJECT_ID) up -d geonode
@docker-compose -p $(PROJECT_ID) up -d django
@docker-compose -p $(PROJECT_ID) up --no-recreate -d dbbackups
@# Dont confuse this with the dbbackup make command below
@# This one runs the postgis-backup cron container
@# We add --no-recreate so that it does not destroy & recreate the db container
@@ -71,6 +72,15 @@ db:
@echo "------------------------------------------------------------------"
@docker-compose -p $(PROJECT_ID) up -d postgres
dbrestore:
@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "dropdb --if-exists $(DATABASE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "dropdb --if-exists $(DATABASE_GEONODE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "createdb -O docker -T template_postgis $(DATABASE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "createdb -O docker -T template_postgis $(DATABASE_GEONODE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres pg_restore /backups/latest-$(DATABASE_NAME).dmp | docker exec -i $(PROJECT_ID)-postgres su - postgres -c "psql $(DATABASE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres pg_restore /backups/latest-$(DATABASE_GEONODE_NAME).dmp | docker exec -i $(PROJECT_ID)-postgres su - postgres -c "psql $(DATABASE_GEONODE_NAME)"
nginx:
@echo
@echo "------------------------------------------------------------------"
@@ -220,16 +230,6 @@ dbshell-geonode-data:
@echo "------------------------------------------------------------------"
@docker exec -t -i $(PROJECT_ID)-postgres psql -U docker -h localhost $(DATABASE_GEONODE_NAME)
dbrestore:
@echo
@echo "------------------------------------------------------------------"
@echo "Restore dump from backups/latest.dmp in production mode"
@echo "------------------------------------------------------------------"
@# - prefix causes command to continue even if it fails
-@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "dropdb $(DATABASE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres su - postgres -c "createdb -O docker -T template_postgres $(DATABASE_NAME)"
@docker exec -t -i $(PROJECT_ID)-postgres pg_restore /backups/latest.dmp | docker exec -i $(PROJECT_ID)-postgres su - postgres -c "psql $(DATABASE_NAME)"
dbbackup:
@echo
@echo "------------------------------------------------------------------"
@@ -239,13 +239,7 @@ dbbackup:
@echo "------------------------------------------------------------------"
@# - prefix causes command to continue even if it fails
@# Explicitly don't use -it so we can call this make target over a remote ssh session
@docker exec $(PROJECT_ID)-postgres-backups /backups.sh
@docker exec $(PROJECT_ID)-postgres-backups cat /var/log/cron.log | tail -2 | head -1 | awk '{print $4}'
-@if [ -f "backups/latest.dmp" ]; then rm backups/latest.dmp; fi
# backups is intentionally missing from front of first clause below otherwise symlink comes
# out with wrong path...
@ln -s `date +%Y`/`date +%B`/PG_$(PROJECT_ID)_$(DATABASE_NAME).`date +%d-%B-%Y`.dmp backups/latest.dmp
@echo "Backup should be at: backups/`date +%Y`/`date +%B`/PG_$(PROJECT_ID)_$(DATABASE_NAME).`date +%d-%B-%Y`.dmp"
@docker exec $(PROJECT_ID)-dbbackups /bin/bash -c "./backups.sh"
sentry:
@echo
+20
View File
@@ -7,6 +7,7 @@ services:
image: kartoza/postgis:9.4-2.1
volumes:
- ./pg/postgres_data:/var/lib/postgresql
- ./backups:/backups
environment:
- USERNAME=docker
- PASS=docker
@@ -163,6 +164,25 @@ services:
- /geoserver_data/data
network_mode: "bridge"
dbbackups:
image: kartoza/pg-backup:9.4
hostname: pg-djangobackups
container_name: haitidata-dbbackups
volumes:
- ./backups:/backups
links:
- postgres:db
environment:
- DUMPPREFIX=HAITIDATA
# These are all defaults anyway, but setting explicitly in
# case we ever want to ever use different credentials
- PGUSER=docker
- PGPASSWORD=docker
- PGPORT=5432
- PGHOST=db
- PGDATABASE=gis
network_mode: "bridge"
volumes:
geoserver_data_dir: