mirror of
https://github.com/yavook/kiwi-backup.git
synced 2024-11-24 07:53:01 +00:00
kiwi-cron as base image; separate requirements.txt
This commit is contained in:
parent
5d34c81b97
commit
4633a4923f
2 changed files with 80 additions and 40 deletions
78
Dockerfile
78
Dockerfile
|
@ -1,4 +1,4 @@
|
||||||
FROM python:3.9-alpine3.13
|
FROM yavook/kiwi-cron:0.1 AS deps
|
||||||
LABEL maintainer="jmm@yavook.de"
|
LABEL maintainer="jmm@yavook.de"
|
||||||
|
|
||||||
# Previous work: https://github.com/wernight/docker-duplicity
|
# Previous work: https://github.com/wernight/docker-duplicity
|
||||||
|
@ -19,13 +19,19 @@ RUN set -ex; \
|
||||||
libxslt \
|
libxslt \
|
||||||
openssh-client \
|
openssh-client \
|
||||||
openssl \
|
openssl \
|
||||||
|
python3 \
|
||||||
rsync \
|
rsync \
|
||||||
; \
|
; \
|
||||||
update-ca-certificates; \
|
update-ca-certificates;
|
||||||
|
|
||||||
|
COPY requirements.txt /tmp/
|
||||||
|
|
||||||
|
RUN set -ex; \
|
||||||
\
|
\
|
||||||
# dependencies to build python packages
|
# python packages buildtime dependencies
|
||||||
apk --no-cache add --virtual .build-deps \
|
apk --no-cache add --virtual .build-deps \
|
||||||
gcc \
|
gcc \
|
||||||
|
git \
|
||||||
libffi-dev \
|
libffi-dev \
|
||||||
librsync-dev \
|
librsync-dev \
|
||||||
libxml2-dev \
|
libxml2-dev \
|
||||||
|
@ -33,47 +39,41 @@ RUN set -ex; \
|
||||||
make \
|
make \
|
||||||
musl-dev \
|
musl-dev \
|
||||||
openssl-dev \
|
openssl-dev \
|
||||||
|
python3-dev \
|
||||||
|
py3-pip \
|
||||||
|
cargo \
|
||||||
|
; \
|
||||||
|
# make use of prebuilt wheels where possible
|
||||||
|
python3 -m pip --no-cache-dir \
|
||||||
|
install wheel \
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# make use of "wheel" python packages
|
python3 -m pip --no-cache-dir \
|
||||||
pip3 --no-cache-dir install wheel ; \
|
install -r /tmp/requirements.txt \
|
||||||
\
|
|
||||||
pip3 --no-cache-dir install \
|
|
||||||
# main app
|
|
||||||
duplicity \
|
|
||||||
\
|
|
||||||
# general duplicity requirements, based on
|
|
||||||
# http://duplicity.nongnu.org/vers8/README
|
|
||||||
# https://git.launchpad.net/duplicity/tree/requirements.txt
|
|
||||||
fasteners \
|
|
||||||
future \
|
|
||||||
mock \
|
|
||||||
paramiko \
|
|
||||||
python-gettext \
|
|
||||||
requests \
|
|
||||||
urllib3 \
|
|
||||||
\
|
|
||||||
# backend requirements
|
|
||||||
azure-mgmt-storage \
|
|
||||||
b2sdk \
|
|
||||||
boto \
|
|
||||||
boto3 \
|
|
||||||
dropbox \
|
|
||||||
gdata \
|
|
||||||
jottalib \
|
|
||||||
mediafire \
|
|
||||||
mega.py \
|
|
||||||
pydrive \
|
|
||||||
pyrax \
|
|
||||||
python-swiftclient \
|
|
||||||
requests_oauthlib \
|
|
||||||
; \
|
; \
|
||||||
\
|
\
|
||||||
# remove buildtime dependencies
|
# remove buildtime dependencies
|
||||||
pip3 --no-cache-dir uninstall -y wheel; \
|
python3 -m pip --no-cache-dir \
|
||||||
apk del --purge .build-deps
|
uninstall -y wheel \
|
||||||
|
; \
|
||||||
|
apk del --purge .build-deps;
|
||||||
|
|
||||||
VOLUME ["/root/.cache/duplicity", "/backup/target"]
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
# create non-root user
|
||||||
|
adduser -D -u 1368 duplicity; \
|
||||||
|
mkdir -p /home/duplicity/.cache/duplicity; \
|
||||||
|
mkdir -p /home/duplicity/.gnupg; \
|
||||||
|
chmod -R go+rwx /home/duplicity/;
|
||||||
|
|
||||||
|
USER duplicity
|
||||||
|
|
||||||
|
VOLUME [ "/home/duplicity/.cache/duplicity" ]
|
||||||
|
|
||||||
|
# confirm this is working
|
||||||
|
RUN set -ex; \
|
||||||
|
\
|
||||||
|
duplicity --version
|
||||||
|
|
||||||
ENV \
|
ENV \
|
||||||
#################
|
#################
|
||||||
|
@ -104,6 +104,4 @@ ENV \
|
||||||
GPG_KEY_ID="" \
|
GPG_KEY_ID="" \
|
||||||
GPG_PASSPHRASE=""
|
GPG_PASSPHRASE=""
|
||||||
|
|
||||||
COPY do-plicity /usr/local/bin/
|
|
||||||
|
|
||||||
CMD ["do-plicity"]
|
CMD ["do-plicity"]
|
||||||
|
|
42
requirements.txt
Normal file
42
requirements.txt
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
##### main app #####
|
||||||
|
|
||||||
|
duplicity==0.8.21
|
||||||
|
|
||||||
|
# dependencies as per
|
||||||
|
# https://gitlab.com/duplicity/duplicity/-/blob/rel.0.8.21/requirements.txt
|
||||||
|
|
||||||
|
##### basic requirements #####
|
||||||
|
|
||||||
|
fasteners
|
||||||
|
future
|
||||||
|
python-gettext
|
||||||
|
setuptools>=44.1.1
|
||||||
|
setuptools-scm>=5.0.2
|
||||||
|
|
||||||
|
|
||||||
|
##### backend libraries #####
|
||||||
|
|
||||||
|
azure-storage-blob ; python_version >= '3.6'
|
||||||
|
b2sdk ; python_version >= '3.6'
|
||||||
|
boto
|
||||||
|
boto3
|
||||||
|
boxsdk[jwt] ; python_version >= '3.6'
|
||||||
|
dropbox
|
||||||
|
gdata ; python_version == '2.7'
|
||||||
|
gdata-python3 ; python_version >= '3.6'
|
||||||
|
google-api-python-client
|
||||||
|
google-auth-oauthlib
|
||||||
|
jottalib
|
||||||
|
keyring
|
||||||
|
mediafire
|
||||||
|
megatools ; python_version >= '3.6'
|
||||||
|
paramiko
|
||||||
|
pexpect
|
||||||
|
psutil
|
||||||
|
pydrive ; python_version >= '3.6'
|
||||||
|
pydrive2 ; python_version >= '3.6'
|
||||||
|
pyrax ; python_version >= '3.6'
|
||||||
|
python-swiftclient
|
||||||
|
python-keystoneclient
|
||||||
|
requests
|
||||||
|
requests-oauthlib
|
Loading…
Reference in a new issue