Refactoring of code, renaming env variables name
This commit is contained in:
10
Makefile
10
Makefile
@@ -17,20 +17,20 @@ docker-build:
|
|||||||
docker build -f docker/Dockerfile -t jkaninda/pg-bkup:latest .
|
docker build -f docker/Dockerfile -t jkaninda/pg-bkup:latest .
|
||||||
|
|
||||||
docker-run: docker-build
|
docker-run: docker-build
|
||||||
docker run --rm --network internal --privileged --device /dev/fuse --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --prune --keep-last 2
|
docker run --rm --network internal --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --prune --keep-last 2
|
||||||
docker-restore: docker-build
|
docker-restore: docker-build
|
||||||
docker run --rm --network internal --privileged --device /dev/fuse --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup restore -f ${FILE_NAME}
|
docker run --rm --network internal --user 1000:1000 --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup restore -f ${FILE_NAME}
|
||||||
|
|
||||||
|
|
||||||
docker-run-scheduled: docker-build
|
docker-run-scheduled: docker-build
|
||||||
docker run --rm --network internal --privileged --device /dev/fuse --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --mode scheduled --period "* * * * *"
|
docker run --rm --network internal --user 1000:1000 --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --mode scheduled --period "* * * * *"
|
||||||
|
|
||||||
|
|
||||||
docker-run-scheduled-s3: docker-build
|
docker-run-scheduled-s3: docker-build
|
||||||
docker run --rm --network internal --privileged --device /dev/fuse --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "ACCESS_KEY=${ACCESS_KEY}" -e "SECRET_KEY=${SECRET_KEY}" -e "BUCKET_NAME=${BUCKET_NAME}" -e "S3_ENDPOINT=${S3_ENDPOINT}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --storage s3 --mode scheduled --path /custom-path --period "* * * * *"
|
docker run --rm --network internal --user 1000:1000 --name pg-bkup -v "./backup:/backup" -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "ACCESS_KEY=${ACCESS_KEY}" -e "SECRET_KEY=${SECRET_KEY}" -e "BUCKET_NAME=${BUCKET_NAME}" -e "S3_ENDPOINT=${S3_ENDPOINT}" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --storage s3 --mode scheduled --path /custom-path --period "* * * * *"
|
||||||
|
|
||||||
docker-run-s3: docker-build
|
docker-run-s3: docker-build
|
||||||
docker run --rm --network internal --privileged --device /dev/fuse --name pg-bkup -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "ACCESS_KEY=${ACCESS_KEY}" -e "SECRET_KEY=${SECRET_KEY}" -e "BUCKET_NAME=${BUCKET_NAME}" -e "S3_ENDPOINT=${S3_ENDPOINT}" -e "AWS_REGION=eu2" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --storage s3 --path /custom-path
|
docker run --rm --network internal --name pg-bkup -e "DB_HOST=${DB_HOST}" -e "DB_NAME=${DB_NAME}" -e "DB_USERNAME=${DB_USERNAME}" -e "DB_PASSWORD=${DB_PASSWORD}" -e "ACCESS_KEY=${ACCESS_KEY}" -e "SECRET_KEY=${SECRET_KEY}" -e "AWS_S3_BUCKET_NAME=${AWS_S3_BUCKET_NAME}" -e "S3_ENDPOINT=${S3_ENDPOINT}" -e "AWS_REGION=eu2" -e "GPG_PASSPHRASE=${GPG_PASSPHRASE}" jkaninda/pg-bkup bkup backup --storage s3 --path /custom-path
|
||||||
|
|
||||||
|
|
||||||
docker-restore-s3: docker-build
|
docker-restore-s3: docker-build
|
||||||
|
|||||||
@@ -16,9 +16,10 @@ ENV DB_USERNAME=""
|
|||||||
ENV DB_PASSWORD=""
|
ENV DB_PASSWORD=""
|
||||||
ENV DB_PORT="5432"
|
ENV DB_PORT="5432"
|
||||||
ENV STORAGE=local
|
ENV STORAGE=local
|
||||||
ENV BUCKET_NAME=""
|
ENV AWS_S3_ENDPOINT=""
|
||||||
ENV ACCESS_KEY=""
|
ENV AWS_S3_BUCKET_NAME=""
|
||||||
ENV SECRET_KEY=""
|
ENV AWS_ACCESS_KEY=""
|
||||||
|
ENV AWS_SECRET_KEY=""
|
||||||
ENV AWS_REGION="us-west-2"
|
ENV AWS_REGION="us-west-2"
|
||||||
ENV AWS_DISABLE_SSL="false"
|
ENV AWS_DISABLE_SSL="false"
|
||||||
ENV GPG_PASSPHRASE=""
|
ENV GPG_PASSPHRASE=""
|
||||||
@@ -27,12 +28,13 @@ ENV SSH_PASSWORD=""
|
|||||||
ENV SSH_HOST_NAME=""
|
ENV SSH_HOST_NAME=""
|
||||||
ENV SSH_IDENTIFY_FILE="/root/.ssh/id_rsa"
|
ENV SSH_IDENTIFY_FILE="/root/.ssh/id_rsa"
|
||||||
ENV SSH_PORT="22"
|
ENV SSH_PORT="22"
|
||||||
ENV S3_ENDPOINT=https://s3.amazonaws.com
|
|
||||||
ARG DEBIAN_FRONTEND=noninteractive
|
ARG DEBIAN_FRONTEND=noninteractive
|
||||||
ENV VERSION="v0.8"
|
ENV VERSION="v0.8"
|
||||||
ARG WORKDIR="/app"
|
ARG WORKDIR="/app"
|
||||||
ARG BACKUPDIR="/backup"
|
ARG BACKUPDIR="/backup"
|
||||||
ARG BACKUP_TMP_DIR="/tmp/backup"
|
ARG BACKUP_TMP_DIR="/tmp/backup"
|
||||||
|
ARG BACKUP_CRON="/etc/cron.d/backup_cron"
|
||||||
|
ARG BACKUP_CRON_SCRIPT="/usr/local/bin/backup_cron.sh"
|
||||||
LABEL author="Jonas Kaninda"
|
LABEL author="Jonas Kaninda"
|
||||||
|
|
||||||
RUN apt-get update -qq
|
RUN apt-get update -qq
|
||||||
@@ -48,6 +50,10 @@ RUN mkdir -p $BACKUP_TMP_DIR
|
|||||||
RUN chmod 777 $WORKDIR
|
RUN chmod 777 $WORKDIR
|
||||||
RUN chmod 777 $BACKUPDIR
|
RUN chmod 777 $BACKUPDIR
|
||||||
RUN chmod 777 $BACKUP_TMP_DIR
|
RUN chmod 777 $BACKUP_TMP_DIR
|
||||||
|
RUN touch $BACKUP_CRON && \
|
||||||
|
touch $BACKUP_CRON_SCRIPT && \
|
||||||
|
chmod 777 $BACKUP_CRON && \
|
||||||
|
chmod 777 $BACKUP_CRON_SCRIPT
|
||||||
|
|
||||||
COPY --from=build /app/pg-bkup /usr/local/bin/pg-bkup
|
COPY --from=build /app/pg-bkup /usr/local/bin/pg-bkup
|
||||||
RUN chmod +x /usr/local/bin/pg-bkup
|
RUN chmod +x /usr/local/bin/pg-bkup
|
||||||
@@ -56,4 +62,4 @@ RUN ln -s /usr/local/bin/pg-bkup /usr/local/bin/bkup
|
|||||||
|
|
||||||
ADD docker/supervisord.conf /etc/supervisor/supervisord.conf
|
ADD docker/supervisord.conf /etc/supervisor/supervisord.conf
|
||||||
|
|
||||||
WORKDIR $WORKDIR
|
WORKDIR $WORKDIR
|
||||||
@@ -52,7 +52,7 @@ func StartBackup(cmd *cobra.Command) {
|
|||||||
case "local":
|
case "local":
|
||||||
localBackup(backupFileName, disableCompression, prune, backupRetention, encryption)
|
localBackup(backupFileName, disableCompression, prune, backupRetention, encryption)
|
||||||
case "ssh":
|
case "ssh":
|
||||||
fmt.Println("x is 2")
|
sshBackup(backupFileName, s3Path, disableCompression, prune, backupRetention, encryption)
|
||||||
case "ftp":
|
case "ftp":
|
||||||
fmt.Println("x is 3")
|
fmt.Println("x is 3")
|
||||||
default:
|
default:
|
||||||
@@ -209,8 +209,7 @@ func localBackup(backupFileName string, disableCompression bool, prune bool, bac
|
|||||||
}
|
}
|
||||||
|
|
||||||
func s3Backup(backupFileName string, s3Path string, disableCompression bool, prune bool, backupRetention int, encrypt bool) {
|
func s3Backup(backupFileName string, s3Path string, disableCompression bool, prune bool, backupRetention int, encrypt bool) {
|
||||||
bucket := os.Getenv("BUCKET_NAME")
|
bucket := utils.GetEnvVariable("AWS_S3_BUCKET_NAME", "BUCKET_NAME")
|
||||||
storagePath = os.Getenv("STORAGE_PATH")
|
|
||||||
utils.Info("Backup database to s3 storage")
|
utils.Info("Backup database to s3 storage")
|
||||||
//Backup database
|
//Backup database
|
||||||
BackupDatabase(backupFileName, disableCompression)
|
BackupDatabase(backupFileName, disableCompression)
|
||||||
@@ -242,6 +241,9 @@ func s3Backup(backupFileName string, s3Path string, disableCompression bool, pru
|
|||||||
}
|
}
|
||||||
utils.Done("Database has been backed up and uploaded to s3 ")
|
utils.Done("Database has been backed up and uploaded to s3 ")
|
||||||
}
|
}
|
||||||
|
func sshBackup(backupFileName string, s3Path string, disableCompression bool, prune bool, backupRetention int, encrypt bool) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
func encryptBackup(backupFileName string) {
|
func encryptBackup(backupFileName string) {
|
||||||
gpgPassphrase := os.Getenv("GPG_PASSPHRASE")
|
gpgPassphrase := os.Getenv("GPG_PASSPHRASE")
|
||||||
|
|||||||
@@ -21,8 +21,7 @@ func StartRestore(cmd *cobra.Command) {
|
|||||||
storage = utils.GetEnv(cmd, "storage", "STORAGE")
|
storage = utils.GetEnv(cmd, "storage", "STORAGE")
|
||||||
file = utils.GetEnv(cmd, "file", "FILE_NAME")
|
file = utils.GetEnv(cmd, "file", "FILE_NAME")
|
||||||
executionMode, _ = cmd.Flags().GetString("mode")
|
executionMode, _ = cmd.Flags().GetString("mode")
|
||||||
bucket := os.Getenv("BUCKET_NAME")
|
bucket := utils.GetEnvVariable("AWS_S3_BUCKET_NAME", "BUCKET_NAME")
|
||||||
|
|
||||||
switch storage {
|
switch storage {
|
||||||
case "s3":
|
case "s3":
|
||||||
utils.Info("Restore database from s3")
|
utils.Info("Restore database from s3")
|
||||||
|
|||||||
@@ -19,9 +19,9 @@ import (
|
|||||||
// CreateSession creates a new AWS session
|
// CreateSession creates a new AWS session
|
||||||
func CreateSession() (*session.Session, error) {
|
func CreateSession() (*session.Session, error) {
|
||||||
|
|
||||||
endPoint := os.Getenv("S3_ENDPOINT")
|
endPoint := GetEnvVariable("AWS_S3_ENDPOINT", "S3_ENDPOINT")
|
||||||
accessKey := os.Getenv("ACCESS_KEY")
|
accessKey := GetEnvVariable("AWS_ACCESS_KEY", "ACCESS_KEY")
|
||||||
secretKey := os.Getenv("SECRET_KEY")
|
secretKey := GetEnvVariable("AWS_SECRET_KEY", "SECRET_KEY")
|
||||||
region := os.Getenv("AWS_REGION")
|
region := os.Getenv("AWS_REGION")
|
||||||
awsDisableSsl, err := strconv.ParseBool(os.Getenv("AWS_DISABLE_SSL"))
|
awsDisableSsl, err := strconv.ParseBool(os.Getenv("AWS_DISABLE_SSL"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -178,6 +178,15 @@ func SetEnv(key, value string) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
func GetEnvVariable(envName, oldEnvName string) string {
|
||||||
|
value := os.Getenv(envName)
|
||||||
|
if value == "" {
|
||||||
|
value = os.Getenv(oldEnvName)
|
||||||
|
if value != "" {
|
||||||
|
fmt.Printf("%s is deprecated, please use %s instead!\n", oldEnvName, envName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value
|
||||||
|
}
|
||||||
func ShowHistory() {
|
func ShowHistory() {
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user