mirror of
https://github.com/tiredofit/docker-db-backup.git
synced 2025-12-21 21:33:28 +01:00
89 lines
3.2 KiB
Docker
89 lines
3.2 KiB
Docker
FROM docker.io/tiredofit/alpine:3.17
|
|
LABEL maintainer="Dave Conroy (github.com/tiredofit)"
|
|
|
|
### Set Environment Variables
|
|
ENV INFLUX2_VERSION=2.4.0 \
|
|
MSSQL_VERSION=18.0.1.1-1 \
|
|
CONTAINER_ENABLE_MESSAGING=FALSE \
|
|
CONTAINER_ENABLE_MONITORING=TRUE \
|
|
CONTAINER_PROCESS_RUNAWAY_PROTECTOR=FALSE \
|
|
IMAGE_NAME="tiredofit/db-backup" \
|
|
IMAGE_REPO_URL="https://github.com/tiredofit/docker-db-backup/"
|
|
|
|
### Dependencies
|
|
RUN source /assets/functions/00-container && \
|
|
set -ex && \
|
|
package update && \
|
|
package upgrade && \
|
|
package install .db-backup-build-deps \
|
|
build-base \
|
|
bzip2-dev \
|
|
git \
|
|
libarchive-dev \
|
|
openssl-dev \
|
|
libffi-dev \
|
|
python3-dev \
|
|
py3-pip \
|
|
xz-dev \
|
|
&& \
|
|
\
|
|
package install .db-backup-run-deps \
|
|
aws-cli \
|
|
bzip2 \
|
|
influxdb \
|
|
libarchive \
|
|
mariadb-client \
|
|
mariadb-connector-c \
|
|
mongodb-tools \
|
|
openssl \
|
|
pigz \
|
|
postgresql15 \
|
|
postgresql15-client \
|
|
pv \
|
|
py3-cryptography \
|
|
redis \
|
|
sqlite \
|
|
xz \
|
|
zstd \
|
|
&& \
|
|
\
|
|
apkArch="$(package --print-arch)"; \
|
|
case "$apkArch" in \
|
|
x86_64) mssql=true ; influx2=true ; influx_arch=amd64; ;; \
|
|
aarch64 ) influx2=true ; influx_arch=arm64 ;; \
|
|
*) sleep 0.1 ;; \
|
|
esac; \
|
|
\
|
|
if [ $mssql = "true" ] ; then curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/msodbcsql18_${MSSQL_VERSION}_amd64.package ; curl -O https://download.microsoft.com/download/b/9/f/b9f3cce4-3925-46d4-9f46-da08869c6486/mssql-tools18_${MSSQL_VERSION}_amd64.package ; echo y | package add --allow-untrusted msodbcsql18_${MSSQL_VERSION}_amd64.package mssql-tools18_${MSSQL_VERSION}_amd64.package ; else echo >&2 "Detected non x86_64 build variant, skipping MSSQL installation" ; fi; \
|
|
if [ $influx2 = "true" ] ; then curl -sSL https://dl.influxdata.com/influxdb/releases/influxdb2-client-${INFLUX2_VERSION}-linux-${influx_arch}.tar.gz | tar xvfz - --strip=1 -C /usr/src/ ; chmod +x /usr/src/influx ; mv /usr/src/influx /usr/sbin/ ; else echo >&2 "Unable to build Influx 2 on this system" ; fi ; \
|
|
\
|
|
mkdir -p /usr/src/pbzip2 && \
|
|
curl -sSL https://launchpad.net/pbzip2/1.1/1.1.13/+download/pbzip2-1.1.13.tar.gz | tar xvfz - --strip=1 -C /usr/src/pbzip2 && \
|
|
cd /usr/src/pbzip2 && \
|
|
make && \
|
|
make install && \
|
|
mkdir -p /usr/src/pixz && \
|
|
curl -sSL https://github.com/vasi/pixz/releases/download/v1.0.7/pixz-1.0.7.tar.xz | tar xvfJ - --strip 1 -C /usr/src/pixz && \
|
|
cd /usr/src/pixz && \
|
|
./configure \
|
|
--prefix=/usr \
|
|
--sysconfdir=/etc \
|
|
--localstatedir=/var \
|
|
&& \
|
|
make && \
|
|
make install && \
|
|
\
|
|
pip3 install blobxfer && \
|
|
\
|
|
package remove .db-backup-build-deps && \
|
|
package cleanup && \
|
|
rm -rf \
|
|
/*.package \
|
|
/etc/logrotate.d/* \
|
|
/root/.cache \
|
|
/tmp/* \
|
|
/usr/src/*
|
|
|
|
|
|
COPY install /
|