GithubHelp home page GithubHelp logo

adferrand / docker-backuppc Goto Github PK

View Code? Open in Web Editor NEW
72.0 13.0 48.0 201 KB

Docker container with BackupPC version 4.x/3.x based on Alpine distribution.

License: MIT License

Shell 46.08% Dockerfile 25.95% Python 27.97%
backuppc docker alpine backups

docker-backuppc's People

Contributors

adferrand avatar angusmcgyver avatar belaytzev avatar brightdroid avatar cacaocow avatar christianuhlmann avatar cl-bvl avatar csibbitt avatar d-sha avatar dependabot-preview[bot] avatar dependabot[bot] avatar jalavoy avatar jkroepke avatar joellinn avatar visnetje avatar xsak avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docker-backuppc's Issues

StrictHostKeyChecking=no, is a no-no

While in the past I have struggled with StrictHostKeyChecking being on (needing to remember to ssh-login once to backup target manually via exec before backups work), I think it is a silly thing to turn off by DEFAULT.

My current solution is to prepare the host-mounted volumes with Ansible so that there is a ready-made known_hosts-file in place when I run backuppc.

Another issue (something which I more or less do understand) is the automatic generation of an ssh-key for the backuppc user. I use ED25519 ssh keys. A new installation will not work agaist fail2ban-enabled backup target because when backuppc offers both RSA and ED25519 keys, it will get banned because the (generated) RSA key fails and leaves a trace of failure in the logs for fail2ban.

Now I have to manually extend the image to a) turn StrictHostKeyChecking back on (boohoo), and make sure there are no id_rsa* in place.

I love your backuppc image and I thank you for it, but please, leave these type of options behind an ENV option to turn them on. Or at least give us an opt-out ENV.

Lighttpd mod_auth and mod_authn_file config errors

When running the docker image for the first time, I noticed the following errors:

(configfile.c.397) Warning: mod_auth should be listed in server.modules before dynamic backends such as mod_cgi
(configfile.c.353) Warning: please add "mod_authn_file" to server.modules list in lighttpd.conf.  A future release of lighttpd 1.4.x will not automatically load mod_authn_file and lighttpd will fail to start up since your lighttpd.conf uses auth.backend = "htpasswd".

Suggested fix:
Change the server.modules line in file files/lighttpd.conf as follows:

-server.modules = ( "mod_alias", "mod_cgi", "mod_auth", "mod_access", "mod_rewrite", "mod_redirect" )
+server.modules = ( "mod_alias", "mod_auth", "mod_authn_file", "mod_access", "mod_rewrite", "mod_redirect", "mod_cgi" )

See Lighttpd server.modules docs for more details.

single link creation bzip2

Hi. For fix warning backuppc | ln: /bin/bzip2: File exists
Please move code for single run.

[mike@dh updates]# diff -c ../docker-backuppc-4.2.1-1/files/entrypoint.sh entrypoint.sh
*** ../docker-backuppc-4.2.1-1/files/entrypoint.sh      2018-09-12 21:22:29.000000000 +0800
--- entrypoint.sh       2018-09-25 13:11:36.308648187 +0800
***************
*** 9,14 ****
--- 9,16 ----
  if [ -f /firstrun ]; then
        echo 'First run of the container. BackupPC will be installed.'
        echo 'If exist, configuration and data will be reused and upgraded as needed.'
+       # Executable bzip2 seems to have been moved into /usr/bin in latest Alpine version. Fix that.
+       ln -s /usr/bin/bzip2 /bin/bzip2

        # Configure timezone if needed
        if [ -n "$TZ" ]; then
***************
*** 92,97 ****
--- 94,100 ----

        # Clean
        rm -rf /root/BackupPC-$BACKUPPC_VERSION.tar.gz /root/BackupPC-$BACKUPPC_VERSION /firstrun
+
  fi

  export BACKUPPC_UUID
***************
*** 99,107 ****
  export BACKUPPC_USERNAME
  export BACKUPPC_GROUPNAME

- # Executable bzip2 seems to have been moved into /usr/bin in latest Alpine version. Fix that.
- ln -s /usr/bin/bzip2 /bin/bzip2
-
  # Exec given CMD in Dockerfile
  cd /home/backuppc
  exec "$@"
--- 102,107 ----

container won't start when data dir is NFS mount

Hi,

I mounted an NFS share in my RPi filesystem for usage of the backuppc data directory. When I start the container with:

docker run --name backuppc --publish 8005:8080 --volume /home/pi/docker-data/backuppc/etc:/etc/backuppc --volume /home/pi/docker-data/backuppc/home:/home/backuppc --volume /mnt/backuppc-data/:/data/backuppc adferrand/backuppc  

it starts the setup, but then exits early, producing this output:

First run of the container. BackupPC will be installed.                                                                                                                                                                                                                                                                       If exist, configuration and data will be reused and upgraded as needed.

Found /etc/backuppc/config.pl, so this is an upgrade of an
existing BackupPC installation.  We will verify some existing
information, but you will probably not need to make any
changes - just hit ENTER to each question.

I found the following locations for these programs:

    bzip2        => /usr/bin/bzip2
    cat          => /bin/cat
    df           => /bin/df
    gtar/tar     => /usr/bin/tar
    gzip         => /usr/bin/gzip
    hostname     => /bin/hostname
    nmblookup    => /usr/bin/nmblookup
    par2         => /usr/bin/par2
    perl         => /usr/bin/perl
    ping         => /bin/ping
    ping6        => /bin/ping6
    rrdtool      => /usr/bin/rrdtool
    rsync        => /usr/bin/rsync
    rsync_bpc    => /usr/local/bin/rsync_bpc
    sendmail     => /usr/sbin/sendmail
    smbclient    => /usr/bin/smbclient
    split        => /usr/bin/split
    ssh/ssh2     => /usr/bin/ssh

--> Are these paths correct? [y]
Failed to create or chown /data/backuppc

Please tell me the hostname of the machine that BackupPC will run on.

--> BackupPC will run on host [beffef4e55f9]

BackupPC should run as a dedicated user with limited privileges.  You
need to create a user.  This user will need read/write permission on
the main data directory and read/execute permission on the install
directory (these directories will be setup shortly).

The primary group for this user should also be chosen carefully.
The data directories and files will have group read permission,
so group members can access backup files.

--> BackupPC should run as user [backuppc]

Please specify an install directory for BackupPC.  This is where the
BackupPC scripts, library and documentation will be installed.

--> Install directory (full path) [/usr/local/BackupPC]

Please specify a data directory for BackupPC.  This is where all the
PC backup data is stored.  This file system needs to be big enough to
accommodate all the PCs you expect to backup (eg: at least several GB
per machine).

--> Data directory (full path) [/data/backuppc]

BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
to pick which one to run.

For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
which handles the requests.  This allows Apache to run as a different user as
backuppc.  To use SCGI you need to set SCGIServerPort to any spare
non-privileged TCP port number.  A negative value disables SCGI.

** Important security warning!!  The SCGIServerPort must not be accessible by
** anyone untrusted.  That means you can't allow untrusted users access to the
** BackupPC server, and you should block the SCGIServerPort TCP port from
** network access.

The traditional alternative is to use CGI.  In this case, an executable needs
to be installed Apache's cgi-bin directory.  This executable needs to run as
set-uid backuppc, or it can be run under mod_perl with Apache
running as user backuppc.

--> SCGI port (-1 to disable) [-1]
--> CGI bin directory (full path, or empty for no CGI) [/var/www/cgi-bin/BackupPC]

BackupPC's CGI and SCGI script need to display various PNG/GIF
images that should be stored where Apache can serve them.  They
should be placed somewhere under Apache's DocumentRoot.  BackupPC
also needs to know the URL to access these images.  Example:

    Apache image directory:  /var/www/htdocs/BackupPC
    URL for image directory: /BackupPC

The URL for the image directory should start with a slash.

--> Apache image directory (full path, or empty for no S/CGI) [/var/www/html/BackupPC]
--> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) [/BackupPC]

Ok, we're about to:

  - install the binaries, lib and docs in /usr/local/BackupPC
  - create the data directory /data/backuppc
  - optionally install the cgi-bin interface
  - create/update the config.pl file /etc/backuppc/config.pl

--> Do you want to continue? [y]
Created /usr/local/BackupPC/bin
Created /usr/local/BackupPC/share
Created /usr/local/BackupPC/share/doc
Created /usr/local/BackupPC/share/doc/BackupPC
Created /usr/local/BackupPC/lib
Created /usr/local/BackupPC/lib/BackupPC
Created /usr/local/BackupPC/lib/BackupPC/CGI
Created /usr/local/BackupPC/lib/BackupPC/Config
Created /usr/local/BackupPC/lib/BackupPC/Lang
Created /usr/local/BackupPC/lib/BackupPC/Storage
Created /usr/local/BackupPC/lib/BackupPC/Xfer
Created /usr/local/BackupPC/lib/BackupPC/Zip
Created /usr/local/BackupPC/lib/Net
Created /usr/local/BackupPC/lib/Net/FTP
Created /var/www/html/BackupPC

The mount point /mnt/backuppc-data/ is writeable by the pi user.
It can also be written to from within Docker, e.g. using as test container: docker run -it --name my-volume-test -v /mnt/backuppc-data/:/data centos /bin/bash
Also the image works fine, when the data dir is a regular folder.

Trying to get circusctl to work as kube *nessprobe

When I exec as root into backuppc 4.3.2-1, I would assume I could talk to circusd using circusctl --endpoint ipc:///var/circus/endpoint list but it times out.

Any help on how to run circusctl inside the container? Since there are no http endpoints that don't require auth in BPC, I'm trying to find something to exec as a readiness/livelynessprobe in kubernetes.

Not a bug.... I built this for ARM64 and it just worked!

I've just finished building on a Raspberry Pi4 8GB running Ubuntu Server.
It just upped and compiled and produced an image!
I'm just testing now and over the next few days.
My 2T BackupPC disk died in the AMD Ryzen 3700X computer and rather than risk Covid-19 and go to the shop, I though I'd just build this container for ARM64 then use the 3T drives on the Pi.
So far so good.
The long and the short of it is: I believe there is scope for a multi-architecture image on hub.docker.com.
Cheers

ether-wake usage

Not specifically an issue, but just asking: How can one use the ether-wake command from this container without directing networking to host? I'd like to set up BackupPC to wake hosts after hours, but normally I cannot send the wol packets to the host's network.

Docker build fails

If I am not mistaken, the current state of the repo leads to a docker build failing with:

Executing busybox-1.33.1-r2.trigger
OK: 425 MiB in 229 packages
Cloning into '/root/backuppc-xs'...
Note: switching to 'b88cc0cabc5f69c82f1bc7eff4fdbb5c4ed8f8dc'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

git switch -c

Or undo this operation with:

git switch -

Turn off this advice by setting config variable advice.detachedHead to false

Checking if your kit is complete...
Warning: the following files are missing in your kit:
META.json
META.yml
Please inform the author.
Writing MYMETA.yml and MYMETA.json
Writing MYMETA.yml and MYMETA.json
Generating a Unix-style Makefile
Writing Makefile for BackupPC::XS
Writing MYMETA.yml and MYMETA.json
make: /bin/sh: Operation not permitted
make: *** [Makefile:421: blib/lib/BackupPC/.exists] Error 127
The command '/bin/sh -c apk --no-cache --update add rsync tar bash shadow ca-certificates supervisor perl perl-archive-zip perl-xml-rss perl-cgi perl-file-listing perl-json-xs expat samba-client iputils openssh openssl rrdtool ttf-dejavu msmtp lighttpd lighttpd-mod_auth gzip apache2-utils tzdata libstdc++ libgomp && apk --no-cache --update -X http://dl-cdn.alpinelinux.org/alpine/edge/community add par2cmdline && apk --no-cache --update --virtual build-dependencies add gcc g++ autoconf automake make git perl-dev acl-dev curl && git clone https://github.com/backuppc/backuppc-xs.git /root/backuppc-xs --branch $BACKUPPC_XS_VERSION && cd /root/backuppc-xs && perl Makefile.PL && make && make test && make install && git clone https://github.com/backuppc/rsync-bpc.git /root/rsync-bpc --branch $RSYNC_BPC_VERSION && cd /root/rsync-bpc && ./configure && make reconfigure && make && make install && rm -f /usr/sbin/sendmail && ln -s /usr/bin/msmtp /usr/sbin/sendmail && sed -i -e 's/^# Host */Host */g' /etc/ssh/ssh_config && sed -i -e 's/^# StrictHostKeyChecking ask/ StrictHostKeyChecking no/g' /etc/ssh/ssh_config && curl -o /root/BackupPC-$BACKUPPC_VERSION.tar.gz -L https://github.com/backuppc/backuppc/releases/download/$BACKUPPC_VERSION/BackupPC-$BACKUPPC_VERSION.tar.gz && mkdir -p /home/backuppc && cd /home/backuppc && touch /firstrun && rm -rf /root/backuppc-xs /root/rsync-bpc /root/par2cmdline && apk del build-dependencies' returned a non-zero code: 2

firstrun file at /

The container always thinks it's starting as firstrun, which makes sense considering the file is baked into the image on /.

Should it not be moved into backuppc's config or home directory, so it can properly be removed after the actual first run, and stay removed? 😄

Probable cause why this hasn't been caught yet: to really adhere to Docker's principle of stateless, we remove the container every time it is restarted, which unfortunately isn't default.

Using the 4.3.0-2 image.

chown issue

Hi,
I tried to install this on my docker container and use NFS shares a the location where all the data stored, i.e. the volumes, since I don't want them stored locally.

But cannot get it to work, since the container entrypoint.sh insists on doing:

chown "$BACKUPPC_USERNAME":"$BACKUPPC_GROUPNAME" /home/backuppc

Would you mind to create a variable for controlling whether or not any permissions should be set or not.

In fact it would be great if the entryppoint.sh could be configured to not create any users at all and simply require that a user has been set up before and just exit with that message if correct VARS has not been set before launching the container.

I am happy to submit a pull request, but I have never done any docker composes before.

Unrecognized totals option with BusyBox tar

We're trying to use localhost backups with tar using the method suggested in the official FAQ
Doing so using $Conf{TarClientCmd} = '$tarPath -c -v -f - -C $shareName+ --totals'; sudo is not needed as it is run inside the container, doesn't work because Alpine uses tar from BusyBox by default, resulting in the following error:

/bin/tar: unrecognized option: totals

Alpine has also the possibility to install GNU tar from its repositories that should support also --totals option.
Could be possible to add GNU tar in the runtime dependencies?

RUN apk --no-cache --update add python3 rsync bash perl perl-archive-zip perl-xml-rss perl-cgi perl-file-listing expat samba-client iputils openssh openssl rrdtool ttf-dejavu msmtp lighttpd lighttpd-mod_auth gzip apache2-utils tzdata libstdc++ libgomp shadow ca-certificates \

Many thanks.

please include pigz

First thanks for this great docker container :)

I'd like to use pigz to compress my archive backups, could you please add pigz in the Dockerfile?

Thank you in advance

BackupPC breaks after using webinterface to modify configuration on backuppc:4.4.0-10

Hi,

Updated to backuppc:4.4.0-10 when it was release and everything looked fine. However yesterday after removing a host in the web interface (Edit Hosts -> Delete on host) the web interfaces throws the following error:

Software error:

Not an ARRAY reference at /usr/local/BackupPC/lib/BackupPC/CGI/Lib.pm line 468.

For help, please send mail to this site's webmaster, giving this error message and the time and date of the error. 

It appears to be because of backuppc/backuppc#466. This issue has been fixed in the master branch of BackupPC but no release has been made for it. I was able to get it working again by comparing the config.pl.pre-4.0.0 and the most recent config.pl and changing () to either [] or {} as it was previously configured as mentioned in backuppc/backuppc#472.

Made a patch out of backuppc/backuppc@2c9270b and modified entrypoint.sh to apply the patch (needed to install patch too) and included both files in the container and it seemed to fix the issue. Not sure if this is the correct way to fix it though.

I should add that this might be a problem in releases before 4.4.0-10 as well. It was introduced in Data::Dumper versions >= 2.182.

Circusd 100% cpu usage on 75a2cc381f39 4.3.2

Hi!
Looks like circus in build


IMAGE
4.3.2
docker pull adferrand/backuppc:4.3.2
Last updated17 hours agobyadferrand
DIGEST
OS/ARCH
COMPRESSED SIZE
75a2cc381f39
linux/amd64
77.84 MB

Is eating 100% cpu without apparent reason, backuppc works as usually.

I've tried to debug it but I had no luck

Fell back in 4.3.1-1 and everything looks fine.

Podman Container Problem - ping: socket: Operation not permitted

I am running BackupPC version 4.4.0 in a Podman Container inside RHEL9. I upgraded this week from RHEL8.
The backups are not working (they were before) because I am getting "No Ping Response" for all the clients.
From inside the Container I can ping as root, but as backuppc user I get this:
ping: socket: Operation not permitted
Here are the permissions on /bin/ping:
-rwsr-xr-x 1 root root 64120 Jul 23 2021 /bin/ping
Here is my startup script:

BASE_FOLDER=/home/francis/podman-containers/BackupPC/
cd $BASE_FOLDER
podman run -itd \
    --name fg_backuppc \
    --hostname podman-backuppc.fsoft.nnet \
    --publish 8080:8080 \
    --restart=always \
    --volume /var/podman_data/BackupPC/etc/backuppc:/etc/backuppc \
    --volume /var/podman_data/BackupPC/home/backuppc:/home/backuppc \
    --volume /home/backuppc/ToBackup/backuppc-backups:/data/backuppc \
    --env AUTH_METHOD=file \
    --env BACKUPPC_WEB_USER=backuppc \
    --env BACKUPPC_WEB_PASSWD=fsoft31? \
    --env SMTP_HOST=mail.fsoft.nnet \
    --env SMTP_MAIL_DOMAIN=fsoft.nnet \
    adferrand/backuppc 

I have tried the solution in the known Podman Bug found here but it does NOT fix the problem for me, despite restarting the container.

How can I fix this problem, and then get my backups working again?

Unable to ping hosts on local network

Hi,

From within the docker container, it doesn't seem to be able to contact any local hosts on the network?
Looks like alpine doesn't include any /etc/nsswitch.conf file which may be forcing all DNS to be resolved remotely, however even after manually creating this file in the container it does not work.\

Any ideas?

From host:

$ ping matts-imac.local
PING matts-imac.local (192.168.10.31) 56(84) bytes of data.
64 bytes from Matts-iMac.local (192.168.10.31): icmp_seq=1 ttl=64 time=0.159 ms
64 bytes from Matts-iMac.local (192.168.10.31): icmp_seq=2 ttl=64 time=0.262 ms
^C
--- matts-imac.local ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.159/0.210/0.262/0.053 ms

From container:

/ # ping matts-imac.local
ping: unknown host matts-imac.local

My docker-compose.yml file:

version: "3.1"
services:
  backuppc:
    image: adferrand/backuppc
    container_name: backuppc
    ports:
      - "8080:8080"
    volumes:
      - /etc/backuppc:/etc/backuppc
      - /var/lib/backuppc:/home/backuppc
      - /media/backuppc:/data/backuppc
    environment:
      BACKUPPC_UUID: 114
      BACKUPPC_GUID: 122
      TZ: "Europe/London"

Prometheus endpoint returning invalid ARRAY(XXX) metrics

Hi,

Thank you for maintaining a current BackupPC image!

We have been using it for about a month for our servers. We initially switched over to it when we started using the Prometheus endpoint (/BackupPC_Admin?action=metrics&format=prometheus) -- with our own image we were hitting this issue: backuppc/backuppc#434 ... but your image worked, until today. Was the previous version just an older release? I'm wondering what changed in this most recent release that broke our metrics...

Cheers,
John

Latest version will not start up

When I try to run the latest version using the basic run command in the doc, there is an error about the rsync version, and the web UI shows errors about the backend not running.

Running 4.2.1 works fine, however.

Archive persistence

I'm working with rclone for off-site archive backups, I tried creating a subdirectory under /home/backuppc/archive using symbolic link but docker doesn't allow to do it out of his context

$ cd /var/docker-data/backuppc/home
$ ln -s /mnt/rclone/archive/mount archive

Also I tried mounting it with --bind option but had quite a few problems with the mount order.

# fstab
/var/docker-data/backuppc/home/archive /mnt/rclone/archive/mount none defaults,bind 0 0

It would be interesting to add a fourth volume to the image to persist the off-site archive on an external device, for example:

VOLUME ["/etc/backuppc", "/home/backuppc", "/data/backuppc", "/data/archive"]

Regards

Docker image fails on ARM: exec user process caused "exec format error"

Hi,
When pulling docker-backuppc and running it, I receive the following error:

standard_init_linux.go:178: exec user process caused "exec format error"

Run command used:

docker run \
    --name backuppc \
    --publish 81:8080 \
    --volume /var/media/CONFIG/backuppc/etc:/etc/backuppc \
    --volume /var/media/CONFIG/backuppc/home:/home/backuppc \
    --volume /storage/DSdata/ME_only/backuppc/data:/data/backuppc \
    adferrand/backuppc

I am running on:

NAME=		LibreELEC
VERSION=	8.2.5
BUILD_ID=	0beeae963db04e94b1d4457a8fcaa3c25bf2161a
OPENELEC_ARCH=	WeTek_Hub.aarch64
LIBREELEC_ARCH=	WeTek_Hub.aarch64

and docker

Client:
 Version:      1.13.1
 API version:  1.26
 Go version:   go1.7.5
 Git commit:   1.13.1
 Built:        Sat Jul 15 18:44:38 UTC 2017
 OS/Arch:      linux/arm64

Server:
 Version:      1.13.1
 API version:  1.26 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   1.13.1
 Built:        Sat Jul 15 18:44:38 UTC 2017
 OS/Arch:      linux/arm64
 Experimental: false

LDAP Filter not set correctly

I don't think the initialisation script is setting the ldap filter correctly.

Observed setting:
/home/backuppc # cat /etc/lighttpd/auth-ldap.conf |grep ldap.filter
auth.backend.ldap.filter = "(LDAP_FILTER(objectClass=user)(sAMAccountName=$))"

Docker environment value setting:
LDAP_FILTER
(&(objectClass=user)(sAMAccountName=$))

docker-backuppc is not starting after upgrade to latest version

I upgraded to the latest version of docker-backuppc, pulled the latest version and try to run it with Data persistency enabled.

########
First run of the container. BackupPC will be installed.,
If exist, configuration and data will be reused and upgraded as needed.,
tar: BackupPC-4.3.1.tar.gz: Cannot open: No such file or directory,
tar: Error is not recoverable: exiting now,
First run of the container. BackupPC will be installed.,
If exist, configuration and data will be reused and upgraded as needed.,
ln: /bin/bzip2: File exists,
First run of the container. BackupPC will be installed.,
If exist, configuration and data will be reused and upgraded as needed.,
ln: /bin/bzip2: File exists,
########

Do you have any suggestions to fix this?

change exposed port

Is it possible to change the exposed port from 8080? Trying to test on TrueNAS Scale and they require container ports to be > 9000

adferrand/backuppc:4.3.0-4 fails to start - You must type in 4 to 1023 characters

Hi,

Just attempted to upgrade to use 4.3.0-4 however it fails to start with the error below. I'm not sure why it's re-generating RSA private key though since it's being upgraded? How should I proceed from here?

2019-03-10 08:30:54 | stdout | Enjoy!
2019-03-10 08:30:55 | stdout | Generating RSA private key, 2048 bit long modulus (2 primes)
2019-03-10 08:30:56 | stdout | .........................................................................................................+++++
2019-03-10 08:30:56 | stdout | .........................+++++
2019-03-10 08:30:56 | stdout | 140689475521384:error:0906906F:PEM routines:PEM_ASN1_write_bio:read key:crypto/pem/pem_lib.c:357:
-- | -- | --
2019-03-10 08:30:56 | stdout | 140689475521384:error:28078065:UI routines:UI_set_result_ex:result too small:crypto/ui/ui_lib.c:903:You must type in 4 to 1023 characters
2019-03-10 08:30:56 | stdout | 140689475521384:error:28078065:UI routines:UI_set_result_ex:result too small:crypto/ui/ui_lib.c:903:You must type in 4 to 1023 characters

Thanks

Build doesn't work, fetched wrong source file for BackupPC 4.4.0

Hi, thanks for making this container! Unfortunately, the build doesn't work anymore, it seems to fetch the wrong release file for Backup PC 4.4.0. It fetches https://github.com/backuppc/backuppc/archive/$BACKUPPC_VERSION.tar.gz and this doesn't work, however for me it works with https://github.com/backuppc/backuppc/releases/download/$BACKUPPC_VERSION/BackupPC-$BACKUPPC_VERSION.tar.gz.

Kind regards,

Marco

msmtprc is always overwritten on first run

Hi,

first of all, thank you for sharing this Docker setup. It works very well!

While you mention that one should bind mount/copy the file ".msmtprc" to /home/backuppc, I would like to use the file /etc/msmtprc instead. For that it would be handy if the file /etc/msmtprc was not overwritten if it already exists (see https://github.com/adferrand/docker-backuppc/blob/master/files/entrypoint.sh#L107). Then it would be possible to simply bind mount the file from the host into the same location in the container.

Regards,
Lukas

Allow use of local SSL certificate

I have read the README and looked to the code about the SSL and the solution is easy, add this extra if check

if [ "$USE_SSL" = true ]; then
+  # Do not generate a certificate if user already mapped the file with docker --volume
+  if [ ! -e /etc/lighttpd/server.pem ]; then
    (...)
+  fi
   # Reconfigure lighttpd to use ssl

This way you allow one user to map a certificate file in the host to /etc/lighttpd/server.pem using the docker --volume option

--volume /etc/ssl/private/my-cert.pem:/etc/lighttpd/server.pem

When Acessing the xFer page - "Forbbidem"

My backuppc (docker) works perfctly from a long time. And for more or less 2 years, I have configured it and forget it. Just acesses some time to check if the backup is running or to restore somenthing.
But since this week, I needed to add one more folder in the backup, but when I acess the Xfer on the host, the light HTTP respond as forbbiden. Unfornutaly, on the log of the lighthttp didn´t show anything relevante. I have also verified all permissions.
I tryed to enable the log acesses on the lighthttp, but when I change someting on the config (mapping a new lighthttp.conf) or on the entrypoint, but it didnt start anymore.

I have also tried, as a test, create a full new instance using other mount points, but it worses, on the new instance, I can´t even add a new host, and says it´s forbidden.

Any help, please.

A future release of lighttpd 1.4.x *will not* automatically load mod_openssl

When running the image with --env 'USE_SSL=true', I'm seeing the following error:

2021-05-29 17:08:24: (configfile.c.59) Warning: please add "mod_openssl" to server.modules list in lighttpd.conf.  A future release of lighttpd 1.4.x *will not* automatically load mod_openssl and lighttpd *will not* use SSL/TLS where your lighttpd.conf contains ssl.* directives

I guess if you want to make sure the SSL module is included only when you are actually using it, the server.modules line in files/lighttpd.conf needs to be inserted conditionally.

Is that easy to fix?

Getting 404

Hi,
when i run the container using the testing instructions, I am getting 404 error.
I have checked the lighttpd configuration, and there is not index (or any other HTML-like) file in /var/www/html/backuppc
I might be missing something, however.

$Conf{EMailFromUserName} is overridden by "auto_from on" in /etc/msmtprc

I am running the BackupPC v4.3.1 version of the container.

BTW, below I have obscured my domain as 'mydomain.com'.

$Conf{EMailFromUserName} is overridden by "auto_from on" in /etc/msmtprc, meaning the configured from-address is not used in outgoing emails.

Using SMTP_HOST & SMTP_MAIL_DOMAIN environment variables, I have configured the backuppc container to send emails via a local SMTP relay container (docker pull namshi/smtp).

I've created a Gmail account, [email protected], for use by the SMTP relay container. The Gmail account has also been setup with an alias, [email protected], and emails sent by a small python script from this address via my local SMTP relay are successfully received as coming from [email protected].

In the backuppc container, I have set $Conf{EMailFromUserName} to [email protected].

When I try to send a test email to [email protected] from inside the container, I see the following:

bash-5.0$ /usr/local/BackupPC/bin/BackupPC_sendEmail -u [email protected]
Sending test email using /usr/sbin/sendmail -t -f [email protected]

This successfully sends emails via my local SMTP relay. However, the mails are always received as coming from [email protected].

In spite of [email protected] being used on the sendmail command-line, I see the following in the headers:

From: [email protected]
X-Google-Original-From: [email protected]

Gmail is not honouring the from-address because [email protected] has permission to send emails from [email protected], but not from [email protected].

I think this is happening because the "auto_from on" setting in /etc/msmtprc is causing msmtp to generate the from-address from the Linux username, 'backuppc' in this case. This causes the configured $Conf{EMailFromUserName} to be overridden, and [email protected] is used as the from-address instead of [email protected].

Manually changing "auto_from on" to "auto_from off" in /etc/msmtprc has fixed this for me (at least for test emails - I haven't yet checked other emails auto-sent by BackupPC), and the test email sent by the BackupPC_sendEmail command above, is now received by [email protected] with the from-address is correctly set to [email protected].

Mount backup as filesystem with backuppcfs.pl

I have successfully dockerised my physical BackupPC 3.x with this image, and I am really happy with it. But in my previous configuration I used backuppcfs.pl (https://sourceforge.net/p/backuppc/mailman/message/35899426/) to mount the backups and easily browse their content trough samba.
I tried to use it in the container, but it requires Fuse.pm Perl module and I was not able to install/compile it in alpine linux.

To be able to compile, I installed build-base, perl-dev, fuse-dev, perl-utils and when I issue cpan Fuse, the compiling starts but exits with error:

Fuse.xs:1515:12: error: 'IOC_IN' undeclared (first use in this function)
if (cmd & IOC_IN)

and much more.

I tried to compile Fuse.pm on a fresh Alpine 3.7 but it did not work either, I tried it on an ubuntu 1804 server and I could compile it, but ubuntu has it also as a ready package.

(I figured out that IOC_IN is declared in ioctl.h, I installed linux-headers, then added a reference to ioctl.h to the perl module, I could compile the module, but the modules tests failed, so I gave up.)

Do you have any advice what to do?

Missing perl module Time::ParseDate

Without Time::ParseDate, the BackupPC_fixupBackupSummary program won't run:

bash-5.1$ ./BackupPC_fixupBackupSummary -h
Can't locate Time/ParseDate.pm in @INC (you may need to install the Time::ParseDate module) (@INC contains: /usr/local/BackupPC/lib /usr/local/lib/perl5/site_perl /usr/local/share/perl5/site_perl /usr/lib/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib/perl5/core_perl /usr/share/perl5/core_perl) at ./BackupPC_fixupBackupSummary line 44.
BEGIN failed--compilation aborted at ./BackupPC_fixupBackupSummary line 44.
bash-5.1$ 

sshd

Using sshd to backup localhost and some NFS mounted filesystems on it as well. I hacked this by adding openrc and enabling sshd but this seems to not persist through restarts.

Disclaimer: This question may not be specific to this repo and due to me being a docker-noob:
Is it possible to add a startup service like sshd to the container?

Quota exceeded (122) / rsync error: error in file IO (code 11) at receiver.c(391)

Hi there,
I did ran an online-Server with an normal BackupPC. Now I switched to my Synology DS918+ and your very nice Docker Image (thanks for that), because I have Fiber in my office.

Now, backuping the same hosts as I did online, I ran into an Xfer Problem:

[...]
rsync_bpc: write failed on "/gitlab/gitlab/backups/1538954530_2018_10_08_10.7.2_gitlab_backup.tar": Quota exceeded (122)
Done: 0 errors, 0 filesExist, 0 sizeExist, 0 sizeExistComp, 0 filesTotal, 0 sizeTotal, 0 filesNew, 0 sizeNew, 0 sizeNewComp, 39877 inode
rsync error: error in file IO (code 11) at receiver.c(391) [receiver=3.0.9.12]
rsync_bpc: connection unexpectedly closed (87 bytes received so far) [generator]
DoneGen: 0 errors, 0 filesExist, 0 sizeExist, 0 sizeExistComp, 1023 filesTotal, 203716527 sizeTotal, 0 filesNew, 0 sizeNew, 0 sizeNewComp, 39874 inode
rsync error: error in rsync protocol data stream (code 12) at io.c(629) [generator=3.0.9.12]
rsync_bpc exited with fatal status 12 (3072) (rsync error: error in rsync protocol data stream (code 12) at io.c(629) [generator=3.0.9.12])
           recv >f+++++++++ rw-------     1000,    1000 21513093120 gitlab/gitlab/backups/1538954530_2018_10_08_10.7.2_gitlab_backup.tar
[...]

This file is an 21G tar on another host I have a 42G tar, is there any configuration or something else I can set to allow backup of files with 200G?

Disclaimer: I'm not 100% sure if this is a Problem of the Docker Container. I think asking here is a good startpoint to get some Information if someone have similar Problems or do successfull backup such big files.

I appreciate any Information.

lighttpd crashes with ldap enabled in docker image 4.4.0-9

When upgrading from 4.4.0-8 to 4.4.0-9 I have found that lighttpd crashes when auth_method = ldap.

2022-03-05 15:53:30,931 INFO Set uid to user 0 succeeded
2022-03-05 15:53:30,956 INFO RPC interface 'supervisor' initialized
2022-03-05 15:53:30,958 INFO supervisord started with pid 1
2022-03-05 15:53:31,965 INFO spawned: 'backuppc' with pid 41
2022-03-05 15:53:31,972 INFO spawned: 'lighttpd' with pid 42
2022-03-05 15:53:31,982 INFO spawned: 'watchmails' with pid 43
2022-03-05 15:53:33,509 INFO success: backuppc entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-05 15:53:33,510 INFO success: lighttpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2022-03-05 15:53:33,510 INFO success: watchmails entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Assertion failed: lr->lr_refcnt == 0 (request.c: ldap_find_request_by_msgid: 1672)
2022-03-05 15:53:38,812 INFO exited: lighttpd (terminated by SIGABRT (core dumped); not expected)
2022-03-05 15:53:39,819 INFO spawned: 'lighttpd' with pid 47
Assertion failed: lr->lr_refcnt == 0 (request.c: ldap_find_request_by_msgid: 1672)
2022-03-05 15:53:40,039 INFO exited: lighttpd (terminated by SIGABRT (core dumped); not expected)
2022-03-05 15:53:41,046 INFO spawned: 'lighttpd' with pid 48
2022-03-05 15:53:42,051 INFO success: lighttpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

I have tested versions 4.4.0-7, 4.4.0-8 and 4.4.0-9

versions 7 & 8 work, but unforatunely the latest version does not.

This is my sanitized docker command:

sudo docker run \
    --name backuppc4409 \
    --publish 32701:8080 \
    --volume /volume1/docker/backuppc/etc:/etc/backuppc \
    --volume /volume1/docker/backuppc/home:/home/backuppc \
    --volume /volume1/docker/backuppc/data:/data/backuppc \
    --env 'AUTH_METHOD=ldap' \
    --env 'LDAP_BACKUPPC_ADMIN=user1 user2' \
    --env 'LDAP_BIND_PW=myldappassword' \
    --env 'LDAP_BIND_DN=CN=SomeUser,OU=SomeOU,DC=SomeDomain,DC=LAN' \
    --env 'LDAP_FILTER=(&(objectClass=user)(sAMAccountName=$))' \
    --env 'LDAP_BASE_DN=DC=SomeDomain,DC=lan' \
    --env 'LDAP_HOSTNAME=hostname.domain.lan:389' \
    --env 'BACKUPPC_WEB_PASSWD=adminpassword' \
    --env 'BACKUPPC_WEB_USER =adminuser' \
    --env 'TZ=Europe/London' \
    --env 'BACKUPPC_GUID=65537' \
    --env 'BACKUPPC_UUID=1026' \
    adferrand/backuppc:4.4.0-9		

Container won't start since update to 4.4.0-11

Since last update to 4.4.0-11, container won't start, and curiously, rolling back to 4.4.0-10 or older won't start either...
First thought about file rights issues as container logs complained about ID of user backuppc being above 999 and that no file on persistent volumes seemed to get updated (logs included), but fiddled with that and it didn't solve the issue.

I don't have clue where to look next, all I have left is an error in container logs => see at line 34 of below extract where there seems to an issue with configure.pl script...

2023-11-12T11:32:04.227436159Z First run of the container. BackupPC will be installed.
2023-11-12T11:32:04.227476567Z If exist, configuration and data will be reused and upgraded as needed.
2023-11-12T11:32:04.396052149Z patching file configure.pl
2023-11-12T11:32:04.396157294Z Hunk #1 succeeded at 742 (offset 74 lines).
2023-11-12T11:32:04.396495029Z patching file lib/BackupPC/Storage/Text.pm
2023-11-12T11:32:04.615338978Z 
2023-11-12T11:32:04.615372617Z Found /etc/backuppc/config.pl, so this is an upgrade of an
2023-11-12T11:32:04.615380890Z existing BackupPC installation.  We will verify some existing
2023-11-12T11:32:04.615387291Z information, but you will probably not need to make any
2023-11-12T11:32:04.615393155Z changes - just hit ENTER to each question.
2023-11-12T11:32:04.615398971Z 
2023-11-12T11:32:04.615404697Z I found the following locations for these programs:
2023-11-12T11:32:04.615410671Z 
2023-11-12T11:32:04.615416392Z     bzip2        => /usr/bin/bzip2
2023-11-12T11:32:04.615422388Z     cat          => /bin/cat
2023-11-12T11:32:04.615428133Z     df           => /bin/df
2023-11-12T11:32:04.615433959Z     gtar/tar     => /usr/bin/tar
2023-11-12T11:32:04.615443433Z     gzip         => /usr/bin/gzip
2023-11-12T11:32:04.615449612Z     hostname     => /bin/hostname
2023-11-12T11:32:04.615455372Z     nmblookup    => /usr/bin/nmblookup
2023-11-12T11:32:04.615461174Z     par2         => /usr/bin/par2
2023-11-12T11:32:04.615467028Z     perl         => /usr/bin/perl
2023-11-12T11:32:04.615472916Z     ping         => /bin/ping
2023-11-12T11:32:04.615478677Z     ping6        => /bin/ping6
2023-11-12T11:32:04.615484455Z     rrdtool      => /usr/bin/rrdtool
2023-11-12T11:32:04.615490266Z     rsync        => /usr/bin/rsync
2023-11-12T11:32:04.615496094Z     rsync_bpc    => /usr/local/bin/rsync_bpc
2023-11-12T11:32:04.615501975Z     sendmail     => /usr/sbin/sendmail
2023-11-12T11:32:04.615507828Z     smbclient    => /usr/bin/smbclient
2023-11-12T11:32:04.615513683Z     split        => /usr/bin/split
2023-11-12T11:32:04.615519411Z     ssh/ssh2     => /usr/bin/ssh
2023-11-12T11:32:04.615525245Z 
2023-11-12T11:32:04.615533729Z --> Are these paths correct? [y]
2023-11-12T11:32:04.732105985Z Can't use string ("1") as a HASH ref while "strict refs" in use at configure.pl line 742.
2023-11-12T11:32:04.732342299Z 
2023-11-12T11:32:04.732360703Z Please tell me the hostname of the machine that BackupPC will run on.
2023-11-12T11:32:04.732369789Z 
2023-11-12T11:32:04.732376930Z --> BackupPC will run on host [backuppc]
2023-11-12T11:32:04.732390261Z 
2023-11-12T11:32:04.732407702Z BackupPC should run as a dedicated user with limited privileges.  You
2023-11-12T11:32:04.732413690Z need to create a user.  This user will need read/write permission on
2023-11-12T11:32:04.732418070Z the main data directory and read/execute permission on the install
2023-11-12T11:32:04.732422383Z directory (these directories will be setup shortly).
2023-11-12T11:32:04.732426624Z 
2023-11-12T11:32:04.732430672Z The primary group for this user should also be chosen carefully.
2023-11-12T11:32:04.732434976Z The data directories and files will have group read permission,
2023-11-12T11:32:04.732439236Z so group members can access backup files.
2023-11-12T11:32:04.732443374Z 
2023-11-12T11:32:04.732447362Z --> BackupPC should run as user [backuppc]
2023-11-12T11:32:04.732451783Z 
2023-11-12T11:32:04.732455776Z Please specify an install directory for BackupPC.  This is where the
2023-11-12T11:32:04.732460017Z BackupPC scripts, library and documentation will be installed.
2023-11-12T11:32:04.732464179Z 
2023-11-12T11:32:04.732468233Z --> Install directory (full path) [/usr/local/BackupPC]
2023-11-12T11:32:04.732472450Z 
2023-11-12T11:32:04.732476505Z Please specify a data directory for BackupPC.  This is where all the
2023-11-12T11:32:04.732480711Z PC backup data is stored.  This file system needs to be big enough to
2023-11-12T11:32:04.732484948Z accommodate all the PCs you expect to backup (eg: at least several GB
2023-11-12T11:32:04.732489187Z per machine).
2023-11-12T11:32:04.732493253Z 
2023-11-12T11:32:04.732497258Z --> Data directory (full path) [/data/backuppc]
2023-11-12T11:32:04.732501487Z 
2023-11-12T11:32:04.732505470Z BackupPC has SCGI and CGI perl interfaces that run under Apache.  You need
2023-11-12T11:32:04.732509740Z to pick which one to run.
2023-11-12T11:32:04.732513858Z 
2023-11-12T11:32:04.732517872Z For SCGI, Apache uses the scgi_mod module to communicate with BackupPC_Admin_SCGI,
2023-11-12T11:32:04.732522092Z which handles the requests.  This allows Apache to run as a different user as
2023-11-12T11:32:04.732526294Z backuppc.  To use SCGI you need to set SCGIServerPort to any spare
2023-11-12T11:32:04.732530454Z non-privileged TCP port number.  A negative value disables SCGI.
2023-11-12T11:32:04.732534693Z 
2023-11-12T11:32:04.732540330Z ** Important security warning!!  The SCGIServerPort must not be accessible by
2023-11-12T11:32:04.732544619Z ** anyone untrusted.  That means you can't allow untrusted users access to the
2023-11-12T11:32:04.732548910Z ** BackupPC server, and you should block the SCGIServerPort TCP port from
2023-11-12T11:32:04.732553140Z ** network access.
2023-11-12T11:32:04.732563043Z 
2023-11-12T11:32:04.732568019Z The traditional alternative is to use CGI.  In this case, an executable needs
2023-11-12T11:32:04.732572481Z to be installed Apache's cgi-bin directory.  This executable needs to run as
2023-11-12T11:32:04.732576963Z set-uid backuppc, or it can be run under mod_perl with Apache
2023-11-12T11:32:04.732581391Z running as user backuppc.
2023-11-12T11:32:04.732585751Z 
2023-11-12T11:32:04.732590024Z --> SCGI port (-1 to disable) [-1]
2023-11-12T11:32:04.732595174Z --> CGI bin directory (full path, or empty for no CGI) [/var/www/cgi-bin/BackupPC]
2023-11-12T11:32:04.732599930Z 
2023-11-12T11:32:04.732604107Z BackupPC's CGI and SCGI script need to display various PNG/GIF
2023-11-12T11:32:04.732608501Z images that should be stored where Apache can serve them.  They
2023-11-12T11:32:04.732612903Z should be placed somewhere under Apache's DocumentRoot.  BackupPC
2023-11-12T11:32:04.732617251Z also needs to know the URL to access these images.  Example:
2023-11-12T11:32:04.732621686Z 
2023-11-12T11:32:04.732625867Z     Apache image directory:  /var/www/htdocs/BackupPC
2023-11-12T11:32:04.732630176Z     URL for image directory: /BackupPC
2023-11-12T11:32:04.732634493Z 
2023-11-12T11:32:04.732638705Z The URL for the image directory should start with a slash.
2023-11-12T11:32:04.732643003Z 
2023-11-12T11:32:04.732647253Z --> Apache image directory (full path, or empty for no S/CGI) [/var/www/html/BackupPC]
2023-11-12T11:32:04.732651772Z --> URL for image directory (omit http://host; starts with '/', or empty for no S/CGI) [/BackupPC]
2023-11-12T11:32:04.732656328Z 
2023-11-12T11:32:04.732660539Z Ok, we're about to:
2023-11-12T11:32:04.732664777Z 
2023-11-12T11:32:04.732668954Z   - install the binaries, lib and docs in /usr/local/BackupPC
2023-11-12T11:32:04.732673355Z   - create the data directory /data/backuppc
2023-11-12T11:32:04.732677653Z   - optionally install the cgi-bin interface
2023-11-12T11:32:04.732682003Z   - create/update the config.pl file /etc/backuppc/config.pl
2023-11-12T11:32:04.732686375Z 
2023-11-12T11:32:04.732690531Z --> Do you want to continue? [y]
2023-11-12T11:32:04.732694848Z Created /usr/local/BackupPC/bin
2023-11-12T11:32:04.732699144Z Created /usr/local/BackupPC/share
2023-11-12T11:32:04.732703407Z Created /usr/local/BackupPC/share/doc
2023-11-12T11:32:04.732707688Z Created /usr/local/BackupPC/share/doc/BackupPC
2023-11-12T11:32:04.732712013Z Created /usr/local/BackupPC/lib
2023-11-12T11:32:04.732716312Z Created /usr/local/BackupPC/lib/BackupPC
2023-11-12T11:32:04.732720607Z Created /usr/local/BackupPC/lib/BackupPC/CGI
2023-11-12T11:32:04.732729015Z Created /usr/local/BackupPC/lib/BackupPC/Config
2023-11-12T11:32:04.732733849Z Created /usr/local/BackupPC/lib/BackupPC/Lang
2023-11-12T11:32:04.732738218Z Created /usr/local/BackupPC/lib/BackupPC/Storage
2023-11-12T11:32:04.732742557Z Created /usr/local/BackupPC/lib/BackupPC/Xfer
2023-11-12T11:32:04.732746923Z Created /usr/local/BackupPC/lib/BackupPC/Zip
2023-11-12T11:32:04.732751199Z Created /usr/local/BackupPC/lib/Net
2023-11-12T11:32:04.732755513Z Created /usr/local/BackupPC/lib/Net/FTP
2023-11-12T11:32:04.732759809Z Created /var/www/html/BackupPC
2023-11-12T11:32:04.732764046Z Created /data/backuppc
2023-11-12T11:32:04.732768339Z Created /data/backuppc/pool
2023-11-12T11:32:04.732772658Z Created /data/backuppc/cpool
2023-11-12T11:32:04.732776954Z Created /data/backuppc/pc
2023-11-12T11:32:04.732781207Z Created /etc/backuppc
2023-11-12T11:32:04.732785414Z Created /data/backuppc/log
2023-11-12T11:32:04.732789717Z Created /var/run/BackupPC
2023-11-12T11:32:04.732793969Z Installing binaries in /usr/local/BackupPC/bin
2023-11-12T11:32:04.732798277Z Installing library in /usr/local/BackupPC/lib
2023-11-12T11:32:04.732802572Z Installing images in /var/www/html/BackupPC
2023-11-12T11:32:04.732806859Z Making systemd and init.d scripts
2023-11-12T11:32:04.732811085Z Making Apache configuration file for suid-perl
2023-11-12T11:32:04.732815390Z Installing docs in /usr/local/BackupPC/share/doc/BackupPC
2023-11-12T11:32:04.732819709Z Installing cgi script BackupPC_Admin in /var/www/cgi-bin/BackupPC
2023-11-12T11:32:04.732824484Z Installing config.pl and hosts in /etc/backuppc

ARM deployment error

Hi,
Thank you for the docker container! However, I get this error when trying to deploy it on an ARM 64 machine:

standard_init_linux.go:207: exec user process caused "exec format error"

After searching on the Web, I have transformed the call into a bash script with a shebang, but the error remains:

#!/bin/bash docker run \ --name backuppc \ --publish 80:8881 \ --volume /mnt/mo2/bkp/backuppc/etc:/etc/backuppc \ --volume /mnt/mo2/bkp/backuppc/home:/home/backuppc \ --volume /mnt/mo2/bkp/backuppc/data:/data/backuppc \ adferrand/backuppc

I have also taken care of giving the right access rights, as stated in your (excellent) documentation.
Is the image incompatible with the ARM platform?
Best,
Stephen

BackupPC not starting with permission denied at /var/lib/backuppc/log

When starting a container I get the following error:

2019-08-07 13:41:45 [182] | mkdir /var/lib/backuppc/log: Permission denied at /usr/local/BackupPC/bin/BackupPC line 1973.

It is repeated every 5 seconds.

If I chown backuppc:backuppc /var/lib/backuppc the it fixes it. (The backuppc/log directory as already there, when the error message appears.)

container start after update

LS,

I've updated the container with docker-composer pull; docker-compose up -d --build.
The container now keeps restarting. Analyzing the issue, I found that the entrypoint.sh script goes into /root and extracts BackupPC-4.4.0.tar.gz. This creates a directory backuppc-4.0.0 (all lowercase). It then tries to change directory to BackupPC-4.4.0 (camelcase). Which fails.

I then tried modifying entrypoint.sh by changing the directory name to all lowercase. The script then continues but fails at "perl configure.pl ..." with:

You need to run makeDist first to create a tarball release that includes an
updated configure.pl.  After you unpack the tarball, run configure.pl from
there.

So I expect that the tarball included in the docker distribution is incorrect.

BTW, I'm using the git version using docker-compose build: option.

regards,
Lyon lemmens

Cannot back up host system - permission denied

I have two servers - A and B.
Dockerized version of backuppc was set up on server A and started right up - no issues.
I configured both servers (A and B) the same way with a user (backuppc) and the ssh key.
Backuppc is able to do a full and incremental backup on server B without any issues.
Server A fails with the following (Xfer LOG):
NOTE: I use the ip addresses for the usernames - but this works for server B.

XferLOG file /data/backuppc/pc/x.x.x.x/XferLOG.0.z created 2022-03-23 05:30:54
Backup prep: type = full, case = 1, inPlace = 1, doDuplicate = 0, newBkupNum = 0, newBkupIdx = 0, lastBkupNum = , lastBkupIdx = (FillCycle = 0, noFillCnt = )
Running: /usr/local/bin/rsync_bpc --bpc-top-dir /data/backuppc --bpc-host-name x.x.x.x --bpc-share-name /mnt --bpc-bkup-num 0 --bpc-bkup-comp 3 --bpc-bkup-prevnum -1 --bpc-bkup-prevcomp -1 --bpc-bkup-inode0 2 --bpc-log-level 1 --bpc-attrib-new -e /usr/bin/ssh\ -l\ root --rsync-path=sudo\ /usr/bin/rsync --super --recursive --protect-args --numeric-ids --perms --owner --group -D --times --links --hard-links --delete --delete-excluded --one-file-system --partial --log-format=log:\ %o\ %i\ %B\ %8U,%8G\ %9l\ %f%L --stats --checksum --timeout=72000 --include=/ x.x.x.x:/mnt/ /
full backup started for directory /mnt
Xfer PIDs are now 506
This is the rsync child about to exec /usr/local/bin/rsync_bpc
Permission denied, please try again.
Permission denied, please try again.
[email protected]: Permission denied (publickey,password).
rsync_bpc: connection unexpectedly closed (0 bytes received so far) [Receiver]
Done: 0 errors, 0 filesExist, 0 sizeExist, 0 sizeExistComp, 0 filesTotal, 0 sizeTotal, 0 filesNew, 0 sizeNew, 0 sizeNewComp, 2 inode
rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.3.0]
rsync_bpc exited with fatal status 255 (65280) (rsync error: unexplained error (code 255) at io.c(226) [Receiver=3.1.3.0])
Xfer PIDs are now
Got fatal error during xfer (No files dumped for share /mnt)
Backup aborted (No files dumped for share /mnt)

What I have checked:
Directory permissions on both servers to compare settings. They are the same.
backuppc directory and .ssh directory permissions
checked the .ssh_config to make sure backupp wasn't 'locked out'
Deleted, and recreated the backuppc use on server A manually in case permissions were corrupted.

I configured this with the assumption that docker will act like a separate server that interacts with the host (server A) like it does with an actual remote server (Server B). Or is it unable to back up the host at all? Or is there a special configuration needed that I cannot find anywhere?
Server A is my main server and has files on it that I would like to backup. Although I have a backup already, I would like to automate the process for a second backup to the backup if you will.
I am stumped.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.