Χρησιμοποιώ το GitLab σε docker (επειδή αγαπώ το containerization) και είμαι πραγματικά εντάξει με αυτό, επειδή μπορώ να μετακινήσω το περιβάλλον GitLab παντού αν χρειαστεί και νιώθω πιο ελαστικός όταν χρησιμοποιώ docker.

Τα backups του GitLab είναι πραγματικά πολύ σημαντικά επειδή κρατάς όλο τον πηγαίο κώδικα και ίσως wiki, ίσως περισσότερα από όλο τον πηγαίο κώδικα, και το backup είναι το πρώτο πράγμα αν έχεις μια υπηρεσία που τρέχει σε κρίσιμο επίπεδο.

Βεβαιώσου για την εντολή docker run

[ercan@gitlab ~]$ docker run --detach \
  --hostname gitlab.ercanermis.com \
  --publish 443:443 --publish 80:80 --publish 22:22 \
  --name gitlab \
  --restart always \
  --volume /srv/gitlab/config:/etc/gitlab \
  --volume /srv/gitlab/logs:/var/log/gitlab \
  --volume /srv/gitlab/data:/var/opt/gitlab \
  gitlab/gitlab-ce:latest

Πάρε ένα backup

docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab

Το backup bash script μου για GitLab Docker μοιάζει κάπως έτσι:

#!/bin/bash
#Author: Ercan Ermis - https://ercanermis.com

docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab cp /srv/gitlab/config/gitlab.rb /srv/gitlab/data/backups/$(date +%F_%H-%M)gitlab.rb cp /srv/gitlab/config/gitlab-secrets.json /srv/gitlab/data/backups/$(date +%F%H-%M)_gitlab-secrets.json

Τελικό: Ας Αυτοματοποιήσουμε το Backup

#!/bin/bash
#Author: Ercan Ermis - https://ercanermis.com

docker exec gitlab gitlab-rake gitlab:backup:create DIRECTORY=gitlab cp /srv/gitlab/config/gitlab.rb /srv/gitlab/data/backups/$(date +%F_%H-%M)gitlab.rb cp /srv/gitlab/config/gitlab-secrets.json /srv/gitlab/data/backups/$(date +%F%H-%M)_gitlab-secrets.json aws s3 sync /srv/gitlab/data/backups/ s3://ercanermis-backup/gitlab/ && rm -rf /srv/gitlab/data/backups/*

Μετά τη δημιουργία του .sh αρχείου σου, μπορείς να χρησιμοποιήσεις το crontab σου για να ενεργοποιήσεις την εκτέλεση του δικού σου /opt/gitlab-backup.sh