wernight / docker-duplicity Goto Github PK
View Code? Open in Web Editor NEWDockerize "duplicity" backup tool.
Home Page: https://hub.docker.com/r/wernight/duplicity/
License: Apache License 2.0
Dockerize "duplicity" backup tool.
Home Page: https://hub.docker.com/r/wernight/duplicity/
License: Apache License 2.0
Hi.
Could you please update the duplicity version to fix the following issue https://bugs.launchpad.net/duplicity/+bug/1883893?
Hello,
Would you please to include py-requests py-requests-oauthlib packages in order to support OneDrive service?
I try to run duplicity with swift protocol but "python-swiftclient" library is absent even if this library is present inside Pipfile.
$ docker run ... wernight/duplicity:latest FILENAME swift://test
gpg: WARNING: unsafe ownership on homedir '/home/duplicity/.gnupg'
BackendException: Swift backend requires the python-swiftclient library.
Exception: No module named 'pkg_resources'
Attempting a backup with the PyDrive backend gives the following error:
$ docker run --rm --user $UID -e GOOGLE_DRIVE_ACCOUNT_KEY -v /home/austin/.cache:/home/duplicity/.cache/duplicity -v /home/austin/.gnupg:/home/duplicity/.gnupg -v /home/austin/data:/data:ro wernight/duplicity duplicity --allow-source-mismatch --full-if-older-than=6M --no-encryption /data pydrive://[email protected]/duplicity
BackendException: PyDrive backend requires PyDrive and Google API client installation.
Please read the manpage for setup details.
Exception: No module named 'pkg_resources'
Hi,
I'm trying to get an image up an running which is close to this one, but can't get gpg to sign, did you or any user of this image encounter the same problem? Encryption seems to work, but when signing gpg just fails
http://stackoverflow.com/questions/36356924/not-a-tty-error-in-alpine-based-duplicity-image
I'm getting the following error when using pydrive
BackendException: PyDrive backend requires PyDrive installationPlease read the manpage to fix.
Hello,
thanks for this useful image. I followed the readme for google drive but I am stuck on this error.
Specified archive directory '/home/duplicity/.cache/duplicity/9dab3bb458bb65e6ad73d147c338aec2' does not exist, or is not a directory
Seems like duplicity cannot use the mounted .cache
directory properly, have you ever experienced such error?
Thank you
Regards
On any command I run with the latest Docker container, I get the error:
No arguments expected for "shell" command, got "duplicity"
This seems to be because the ENTRYPOINT
is poetry shell
and then the CMD duplicity
is not allowed.
Hi,
tried to get the image to work with backup to s3 location eu-central-1. Is this working for anybody? I always get a InvalidLocationConstraint error. It seems there are quite a lot bugs in boto3 about that topic.
It would be nice if someone could share a working backup command line.
Thx
It seems like some required module for the default scp / sftp backend used by duplicity is missing in the container. When I try to connect to some scp scheme url, I get the following:
user@host:~# docker run --rm wernight/duplicity duplicity /root scp://192.168.0.1/test
BackendException: Could not initialize backend: No module named paramiko
In this example, a scp url is used, but the error is the same for sftp urls. Also, the host doesn't have to be available for an actual connection, because the docker image is obviously missing the required package.
New in v0.7.17 (2018/02/26)
---------------------------
* Removed changes made in bug #1044715 Provide a file history feature
- Changes required too much memory to carry in the manifest
- The option --file-changed in collection-status is now invalid
- This will close bugs: #1730451, #896728, #1526557, #1550176
- Starting a full backup will be needed to fully utilize this fix
* Fix update of Launchpad Translations. Translations were not being picked
up on a daily basis and we got several months behind.
New in v0.7.16 (2018/01/12)
---------------------------
* Fixed bug #1733057 AttributeError: 'GPGError' object has no attribute 'decode'
- Replaced call to util.ufn() with call to util.uexc(). Stupid typo!
* More fixes for Unicode handling
- Default to 'utf-8' if sys.getfilesystemencoding() returns 'ascii' or None
- Fixed bug #1386373 with suggestion from Eugene Morozov
* Patched in lp:~crosser/duplicity/fix-oauth-flow
- Fixed bug #1638236 "BackendException with oauth2client 4.0.0"
* Patched in lp:~crosser/duplicity/dpbx-fix-file-listing
- Fixed bug #1639664 "Dropbox support needs to be updated for Dropbox SDK v7.1"
* Patched in lp:~crosser/duplicity/fix-small-file-upload
- Fixed small file upload changes made in Dropbox SDK v7.1
* Fix pylint error in webdavbackend.py
New in v0.7.15 (2017/11/13)
---------------------------
* Fixed bug introduced in new megabackend.py where process_commandline()
takes a string not a list. Now it takes both.
* Updated web page for new megabackend requirements.
* Patched in lp:~mterry/duplicity/more-decode-issues
- Here's some fixes for another couple UnicodeDecodeErrors.
- The duplicity/dup_time.py fixes when a user passes a utf8 date string (or a string with bogus
utf8 characters, but they have to really try to do that). This is bug 1334436.
- The bin/duplicity change from str(e) to util.uexc(e) fixes bug 1324188.
- The rest of the changes (util.exception_traceback and bin/duplicity changes to use it) are to
make the printing of exceptions prettier. Without this, if you see a French exception, you see
"accept\xe9es" instead of "acceptées".
- You can test all of these changes in one simple line:
$ LANGUAGE=fr duplicity remove-older-than $'accept\xffées'
* Fix backend.py to allow string, list, and tuple types to support megabackend.py.
* Fixed bug #1715650 with patch from Mattheww S
- Fix to make duplicity attempt a get first, then create, a container
in order to support container ACLs.
* Fixed bug #1714663 "Volume signed by XXXXXXXXXXXXXXXX, not XXXXXXXX"
- Normalized comparison length to min length of compared keys before comparison
- Avoids comparing mix of short, long, or fingerprint size keys.
* Merged in lp:~mterry/duplicity/rename-dep
- Make rename command a dependency for LP build
* Fixed bug #1654756 with new b2backend.py module from Vincent Rouille
- Faster (big files are uploaded in chunks)
- Added upload progress reporting support
* Fixed bug #1448094 with patch from Wolfgang Rohdewald
- Don't log incremental deletes for chains that have no incrementals
* Fixed bug #1724144 "--gpg-options unused with some commands"
- Add --gpg-options to get version run command
* Fixed bug #1720159 - Cannot allocate memory with large manifest file since 0.7.03
- filelist is not read if --file-changed option in collection-status not present
- This will keep memory usage lower in non collection-status operations
* Fixed bug #1723890 with patch from Killian Lackhove
- Fixes error handling in pydrivebackend.py
* Fixed bug #1730902 GPG Error Handling
- use util.ufn() not str() to handle encoding
New in v0.7.14 (2017/08/31)
---------------------------
* Merged in lp:~dawgfoto/duplicity/skip_sync_collection_status
- collection-status should not sync metadata
- up-to-date local metadata is not needed as collection-status is
generated from remote file list
- syncing metadata might require to download several GBs
* Fixed slowness in 'collection-status' by basing the status on the
remote system only. The local cache is treated as empty.
* Fixed encrypted remote manifest handling to merely put out a non-fatal
error message and continue if the private key is not available.
* Patched in lp:~mterry/duplicity/giobackend-display-name
- giobackend: handle a wider variety of gio backends by making less assumptions;
in particular, this fixes the google-drive: backend
* Fixed bug #1709047 with suggestion from Gary Hasson
- fixed so default was to use original filename
* Fixed PEP8 errors in bin/duplicity
* Merged in lp:~mterry/duplicity/gio_child_for_display_name_0.7
- gio: be slightly more correct and get child GFiles based on display name
* Fixed bug #1711905 with suggestion from Schneider
- log.Warn was invoked with log.warn in webdavbackend.py
* Merged in lp:~mterry/duplicity/gpg-tag-versions
- Support gpg versions numbers that have tags on them.
- This can happen if you build gpg from git trunk (e.g. 2.1.15-beta20). Or if you run
against the freedesktop flatpak runtime (e.g. 2.1.14-unknown).
* Fixed bug #1394386 with new module megabackend.py from Tomas Vondra
- uses megatools from https://megatools.megous.com/ instead of mega.py library
which has been deprecated
- fixed copyright and PEP8 issues
- replaced subprocess.call() with self.subprocess_popen() to standardize
* Fixed bug #1713640 with patch from Aleksandar Ivanisevic
- replace 2.7 syntax with 2.6 equivalent
* Fixed bug #1538333 Assertion error in manifest.py: assert filecount == ...
- Made sure to never pass .part files as true manifest files
- Changed assert to log.Error to warn about truncated/corrupt filelist
- Added unit test to make sure detection works
- Note: while this condition is serious, it will not affect the basic backup and restore
functions. Interactive options like --list-files-changed and --file-changed will not
work correctly for this backup set, so it is advised to run a full backup as soon as
possible after this error occurs.
* Fixed bug #1638033 Remove leading slash on --file-to-restore
- code already used rstrip('/') so change to just strip('/')
@wernight I am using the docker-duplicity image with paramiko for remote backup. Since the last commits, the image does not contain paramiko anymore and duplicity fails.
According to https://hub.docker.com/r/wernight/duplicity/tags, the digest for stable and latest are the same and point to the docker image available in the stable folder (without paramiko).
For now, it seems the images are pushed manually . I can provide some automation using Github actions for updating the images if you are interested
Thanks for maintaining this repository.
Could you upgrade alpine to the latest version? A lot of bugs have been fixed in duplicity in the meantime, particularly one that causes duplicity to consume a lot of memory.
Duplicity requires paramiko or pexpect for ssh support. Recent commits removed py3-paramiko package thus there is no support for ssh/sftp anymore.
Second problem: docker repo does not contain version tags, so it's not possible to just pull an older image without this issue.
It seems the base alpine:3.8 is not working on Raspberry Pi hardware:
standard_init_linux.go:211: exec user process caused "exec format error"
Alpine does support ARM architecture, is there a way to make your dockerfile multiplatform?
I get the below error when trying to backup to B2. Could seem like the container doesn't have an up to date certificates file.
Traceback (most recent call last):
File "/usr/bin/duplicity", line 1537, in <module>
with_tempdir(main)
File "/usr/bin/duplicity", line 1531, in with_tempdir
fn()
File "/usr/bin/duplicity", line 1369, in main
action = commandline.ProcessCommandLine(sys.argv[1:])
File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1117, in ProcessCommandLine
backup, local_pathname = set_backend(args[0], args[1])
File "/usr/lib/python2.7/site-packages/duplicity/commandline.py", line 1006, in set_backend
globals.backend = backend.get_backend(bend)
File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 223, in get_backend
obj = get_backend_object(url_string)
File "/usr/lib/python2.7/site-packages/duplicity/backend.py", line 209, in get_backend_object
return factory(pu)
File "/usr/lib/python2.7/site-packages/duplicity/backends/b2backend.py", line 73, in __init__
response = urllib2.urlopen(request)
File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python2.7/urllib2.py", line 429, in open
response = self._open(req, data)
File "/usr/lib/python2.7/urllib2.py", line 447, in _open
'_open', req)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 1241, in https_open
context=self._context)
File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
raise URLError(err)
URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)>
Per the documentation, I am attempting to backup a directory on the machine host to be transfered via rsync with the "net-backup" user account, unfortunately the wrong username "root" is being passed for authentication to the rsync server.
core@coreos ~ $ docker run --rm -it \
> --user root -e PASSPHRASE=P4ssw0rd \
> -v $PWD/.cache:/home/duplicity/.cache/duplicity \
> -v $PWD/.gnupg:/home/duplicity/.gnupg \
> -v /backups/scripts/net-backup.key:/id_rsa:ro \
> -v ~/.ssh/known_hosts:/etc/ssh/ssh_known_hosts:ro \
> -v /data:/bak:ro \
> wernight/duplicity \
> duplicity --full-if-older-than=6M --allow-source-mismatch \
> --rsync-options='-e "ssh -i /id_rsa"' \
> /bak rsync://[email protected]::NetBackup/cerb
gpg: WARNING: unsafe permissions on homedir '/home/duplicity/.gnupg'
[email protected]'s password:
Any assistance would be appreciated
23 days ago, my backups to Google Cloud stopped working with the following error:
UnsupportedBackendScheme: scheme not supported in url: gs://...
Because the issue appeared 23 days ago, I assume it must have been caused by one of the 4 commits since then. However, I couldn’t find a cause from the diff. Neither pip install boto
nor apk add --no-cache py3-six
helped.
One can reproduce the issue by running:
> docker run --rm --user $UID \
-e PASSPHRASE=P4ssw0rd \
wernight/duplicity \
duplicity --full-if-older-than=6M --allow-source-mismatch /data gs://my-bucket-name/some_dir
gpg: WARNING: unsafe ownership on homedir '/home/duplicity/.gnupg'
UnsupportedBackendScheme: scheme not supported in url: gs://my-bucket-name/some_dir
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.