diff --git a/cicd/cron/Dockerfile b/cicd/cron/Dockerfile new file mode 100644 index 0000000..703581e --- /dev/null +++ b/cicd/cron/Dockerfile @@ -0,0 +1,13 @@ +FROM alpine:3.6 + +RUN apk add --no-cache --upgrade bash mongodb-tools + +# copy crontabs for root user +COPY crontab /etc/crontabs/root + +# copy backup script +COPY backup /myscripts/backup +RUN chmod 0744 /myscripts/backup + +# start crond with log level 8 in foreground, output to stderr +CMD ["crond", "-f", "-d", "8"] \ No newline at end of file diff --git a/cicd/cron/backup b/cicd/cron/backup new file mode 100755 index 0000000..6b4fdb2 --- /dev/null +++ b/cicd/cron/backup @@ -0,0 +1,13 @@ +#!/bin/sh + +DATE=`date +"%Y-%m-%d_%H:%M"` + +echo "Generating backup $DATE" + +mongodump --host fdn2.production.database -d fdn2 --port 27017 --out "/backups/mongodump-$DATE" + +for old in `ls -t /backups | tail -n +7`; do + TOREMOVE="/backups/$old" + echo "Removing '$TOREMOVE'"; + rm -r $TOREMOVE +done \ No newline at end of file diff --git a/cicd/cron/crontab b/cicd/cron/crontab new file mode 100644 index 0000000..250983c --- /dev/null +++ b/cicd/cron/crontab @@ -0,0 +1 @@ +4 0 * * * /myscripts/backup 2>&1 \ No newline at end of file diff --git a/cicd/cron/docker-compose.yml b/cicd/cron/docker-compose.yml new file mode 100644 index 0000000..8358430 --- /dev/null +++ b/cicd/cron/docker-compose.yml @@ -0,0 +1,17 @@ +version: "3" +services: + backup: + image: cronjob + build: ./ + networks: + - backup-network + restart: "unless-stopped" + volumes: + - /home/ddninja/fdn2/backups:/backups + + +networks: + backup-network: + external: true + name: + backup-network diff --git a/cicd/docker-compose/deploy.yml b/cicd/docker-compose/deploy.yml index 0efd9b5..69876f6 100644 --- a/cicd/docker-compose/deploy.yml +++ b/cicd/docker-compose/deploy.yml @@ -5,6 +5,9 @@ services: restart: "on-failure:5" networks: db-network: + backup-network: + aliases: + - §PROJECT_BUILDNAME§.§ENVIRONMENT_TYPE§.database volumes: - ./persistence/database/mongodb:/data/db/ logging: @@ -75,6 +78,10 @@ services: networks: db-network: §PROJECT_BUILDNAME§-network: + backup-network: + external: true + name: + backup-network nginx-network: external: true name: diff --git a/cicd/docker-compose/local-live.yml b/cicd/docker-compose/local-live.yml index 3bb4277..ec7d3a8 100644 --- a/cicd/docker-compose/local-live.yml +++ b/cicd/docker-compose/local-live.yml @@ -5,8 +5,9 @@ services: restart: "no" networks: db-network: + backup-network: aliases: - - §PROJECT_BUILDNAME§.§ENVIRONMENT_TYPE§.database + - §PROJECT_BUILDNAME§.local.database volumes: - §PROJECT_BUILDNAME§-db-persist:/data/db/ webserver: @@ -53,6 +54,10 @@ services: networks: db-network: §PROJECT_BUILDNAME§-network: + backup-network: + external: true + name: + backup-network volumes: