「🏗️」 wip: Removed ftp server and started borgbackup container
This commit is contained in:
33
srcs/docker/bonus/borg-backup/Dockerfile
Normal file
33
srcs/docker/bonus/borg-backup/Dockerfile
Normal file
@ -0,0 +1,33 @@
|
||||
FROM scratch AS builder
|
||||
ADD alpine-minirootfs-3.21.2-x86_64.tar.gz /
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY go.sum /build/go.sum
|
||||
COPY go.mod /build/go.mod
|
||||
COPY cmd /build/cmd
|
||||
COPY internal /build/internal
|
||||
|
||||
RUN cd /build \
|
||||
&& go build git.keyzox.me/42_adjoly/inception/cmd/borg-backup/entrypoint
|
||||
|
||||
FROM scratch
|
||||
ADD alpine-minirootfs-3.21.2-x86_64.tar.gz /
|
||||
|
||||
RUN mkdir -p /backup \
|
||||
&& mkdir -p /source \
|
||||
&& mkdir /docker-entrypoint.d \
|
||||
&& mkdir /docker-backup.d
|
||||
|
||||
RUN apk add --no-cache borgbackup tzdata \
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
COPY --from=builder /build/entrypoint /docker-entrypoint
|
||||
COPY docker/bonus/borg-backup/default-bak.sh /docker-backup.d
|
||||
|
||||
ENTRYPOINT [ "/docker-entrypoint" ]
|
||||
WORKDIR /
|
||||
|
||||
STOPSIGNAL SIGQUIT
|
||||
|
||||
CMD [ "crond", "-l", "${CRON_LOGLEVEL:-8}", "-f" ]
|
45
srcs/docker/bonus/borg-backup/default-bak.sh
Normal file
45
srcs/docker/bonus/borg-backup/default-bak.sh
Normal file
@ -0,0 +1,45 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
# Define variables from environment
|
||||
REPO=${BORG_REPO}
|
||||
PASSPHRASE=${BORG_PASSPHRASE}
|
||||
SOURCE=${BORG_SOURCE}
|
||||
COMPRESSION=${BORG_COMPRESS:-zstd}
|
||||
PRUNE_KEEP_DAILY=${BORG_PRUNE_KEEP_DAILY:-7}
|
||||
PRUNE_KEEP_WEEKLY=${BORG_PRUNE_KEEP_WEEKLY:-4}
|
||||
PRUNE_KEEP_MONTHLY=${BORG_PRUNE_KEEP_MONTHLY:-6}
|
||||
EXCLUDE_PATTERNS=${BORG_EXCLUDE_PATTERNS:-}
|
||||
CHECK_LAST=${BORG_CHECK_LAST}
|
||||
|
||||
BAK_ARGS=--compression $COMPRESSION
|
||||
|
||||
if [[ -z "$PASSPHRASE" ]]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -n "$EXCLUDE_PATTERNS" ]]; then
|
||||
BAK_ARGS+=--exclude $EXCLUDE_PATTERNS
|
||||
fi
|
||||
|
||||
# Borg backup command
|
||||
borg create --stats $BAK_ARGS \
|
||||
$REPO::$(hostname)-$(date +%Y-%m-%d) $SOURCE
|
||||
|
||||
# Borg prune command
|
||||
|
||||
echo "Creating backup..."
|
||||
borg prune --list $REPO --keep-daily=$PRUNE_KEEP_DAILY --keep-weekly=$PRUNE_KEEP_WEEKLY --keep-monthly=$PRUNE_KEEP_MONTHLY
|
||||
|
||||
# Borg check command
|
||||
CHECK_ARGS=""
|
||||
|
||||
if [[ -n "$CHECK_LAST" ]]; then
|
||||
CHECK_ARGS+=--last $CHECK_LAST
|
||||
fi
|
||||
if [[ -n "$CHECK_DATA" ]]; then
|
||||
CHECK_ARGS+=--verify-data
|
||||
fi
|
||||
|
||||
borg check $CHECK_ARGS $REPO
|
@ -1,39 +0,0 @@
|
||||
FROM scratch as builder
|
||||
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
|
||||
|
||||
RUN apk add --no-cache go
|
||||
|
||||
WORKDIR /build
|
||||
|
||||
COPY go.mod /build/go.mod
|
||||
COPY cmd /build/cmd
|
||||
COPY internal /build/internal
|
||||
|
||||
RUN cd /build \
|
||||
&& go build git.keyzox.me/42_adjoly/inception/cmd/vsftpd/entrypoint
|
||||
|
||||
FROM scratch
|
||||
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
|
||||
|
||||
LABEL maintainer="KeyZox"
|
||||
LABEL version="0.1"
|
||||
|
||||
COPY --from=builder /build/entrypoint /docker-entrypoint
|
||||
COPY docker/bonus/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf
|
||||
|
||||
RUN apk add vsftpd \
|
||||
&& mkdir -p /var/ftp \
|
||||
&& mkdir -p /docker-entrypoint.d
|
||||
|
||||
VOLUME /var/ftp
|
||||
|
||||
|
||||
ENTRYPOINT [ "/docker-entrypoint" ]
|
||||
WORKDIR /etc/vsftpd
|
||||
|
||||
EXPOSE 21
|
||||
EXPOSE 30000-30100
|
||||
|
||||
STOPSIGNAL SIGQUIT
|
||||
|
||||
CMD [ "vsftpd", "/etc/vsftpd/vsftpd.conf" ]
|
@ -1,25 +0,0 @@
|
||||
anonymous_enable=NO
|
||||
local_enable=YES
|
||||
write_enable=YES
|
||||
dirmessage_enable=YES
|
||||
xferlog_enable=YES
|
||||
|
||||
ftpd_banner=Welcome to your WordPress FTP server.
|
||||
|
||||
chroot_local_user=YES
|
||||
allow_writeable_chroot=YES
|
||||
user_sub_token=$USER
|
||||
local_root=/var/ftp
|
||||
|
||||
listen=YES
|
||||
listen_port=2100
|
||||
listen_address=0.0.0.0
|
||||
seccomp_sandbox=NO
|
||||
|
||||
pasv_enable=YES
|
||||
pasv_min_port=30000
|
||||
pasv_max_port=30100
|
||||
|
||||
userlist_enable=YES
|
||||
userlist_file=/etc/vsftpd/vsftpd.userlist
|
||||
userlist_deny=NO
|
@ -25,16 +25,9 @@ RUN addgroup mysql \
|
||||
COPY --from=builder /build/entrypoint /docker-entrypoint
|
||||
COPY --from=builder /build/healthcheck /docker-healthcheck
|
||||
|
||||
RUN mkdir /build
|
||||
|
||||
COPY go.mod /build/go.mod
|
||||
COPY cmd /build/cmd
|
||||
COPY internal /build/internal
|
||||
|
||||
RUN apk add --no-cache go mariadb tzdata mariadb-client \
|
||||
RUN apk add --no-cache mariadb tzdata mariadb-client \
|
||||
&& chmod +x /docker-healthcheck \
|
||||
&& chmod +x /docker-entrypoint \
|
||||
&& apk del go \
|
||||
&& mkdir -p /etc/mysql/conf.d /etc/mysql/mariadb.conf.d/ /run/mariadb /run/mysqld \
|
||||
&& chmod ugo+rwx,o+t /run/mariadb \
|
||||
&& chown -R mysql:mysql /var/lib/mysql /run/mariadb /run/mysqld \
|
||||
|
Reference in New Issue
Block a user