Questions / Problems with UrBackup Server in Docker

Trying to transition to running UrBackup in Docker and am hitting some issues I hope someone can help with.

Running on Odroid HC2 with OpenMediaVault 4.1.22-1 and BTRFS file system. I can install UrBackup as a plug-in from the OMV Plug-ins and UrBackup works.

I have tried the uroni/urbackup-server image. When I configure and start the container it throws:

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

I think this is because the image defines:

"Architecture": "amd64"

I have also tried whatang/docker_urbackup:armhf-latest. That one gets a bit further but once the container starts I get the following errors in the logs:

2019-06-23 13:59:05: Starting HTTP-Server on port 55414
2019-06-23 13:59:05: HTTP: Server started up successfully!
2019-06-23 13:59:05: Generating Server identity...
2019-06-23 13:59:05: Generating Server private/public ECDSA key...
2019-06-23 13:59:05: Calculating public key...
terminate called after throwing an instance of 'CryptoPP::FileSink::OpenErr'
  what():  FileSink: error opening file for writing: urbackup/server_ident_ecdsa409k1.priv

It does not seems like Docker can’t write to the configured directories.

Of the two I’d rather get the uroni/urbackup-server image working since that is the official image.

Anyone have experience getting UrBackup to run under Docker on ARMv7/armhf devices? Anyone have suggestions on what I need to tweak (or should be looking at / tweaking) to get it working?

Thanks.

Getting closer …

I created a new image that combines the uroni/urbackup-server and whatang/docker_urbackup images.

Dockerfile

FROM debian:stable

ENV DEBIAN_FRONTEND=noninteractive
ARG VERSION=2.2.11
ENV VERSION ${VERSION}
ARG ARCH=armhf
ENV FILE urbackup-server_${VERSION}_${ARCH}.deb
ENV URL https://www.urbackup.org/downloads/Server/${VERSION}/${FILE}

ADD ${URL} /root/${FILE}

RUN apt-get update \
        && echo "/var/urbackup" | apt-get install -y /root/${FILE} \
        && rm /root/${FILE} && apt-get clean && rm -rf /var/lib/apt/lists/*

COPY start /usr/bin/start

EXPOSE 55413
EXPOSE 55414
EXPOSE 55415
EXPOSE 35623/udp

VOLUME [ "/backups", "/var/urbackup", "/var/log", "/usr/share/urbackup" ]
ENTRYPOINT ["/usr/bin/start"]
CMD ["run"]

start

#!/bin/bash
echo "/backups" > /var/urbackup/backupfolder
chown urbackup:urbackup /backups
chown urbackup:urbackup /var/urbackup
exec urbackupsrv "$@"

This builds and runs. I can open a web browser and navigate to http:[server_ip]:55414 and get:

Sorry. File not found.

And the log fills with the following:

/usr/bin/start: line 3: /var/urbackup/backupfolder: Read-only file system
chown: changing ownership of '/backups': Read-only file system
chown: changing ownership of '/var/urbackup': Read-only file system
2019-06-24 19:22:42: Starting HTTP-Server on port 55414
2019-06-24 19:22:42: HTTP: Server started up successfully!
2019-06-24 19:22:42: WARNING: SQLite: cannot open file at line 34198 of [0ee482a1e0] errorcode: 14
2019-06-24 19:22:42: WARNING: SQLite: os_unix.c:34198: (13) open(/var/urbackup/backup_server.db-shm) -  errorcode: 14
2019-06-24 19:22:42: WARNING: SQLite: unable to open database file errorcode: 14
2019-06-24 19:22:42: ERROR: Error preparing Query [PRAGMA synchronous=NORMAL]: unable to open database file. Retrying in 1s...

I am assuming permissions is also why the web site does not get created.

I am not clear on what user it is expecting and where to set the user.

Thanks.

Hi,
were you able to solve the problem? I have the same issue, I am trying to run urbackup docker container on Odroid C2.

I’m attempting to run the server on DD-WRT ARMv7, I get the same error attempting to urbackupsrv run…

2019-11-12 16:29:13: Starting HTTP-Server on port 55414
2019-11-12 16:29:13: HTTP: Server started up successfully!
2019-11-12 16:29:13: Generating Server identity…
2019-11-12 16:29:13: Generating Server private/public ECDSA key…
2019-11-12 16:29:13: Calculating public key…
terminate called after throwing an instance of ‘CryptoPP::FileSink::OpenErr’
what(): FileSink: error opening file for writing: urbackup/server_ident_ecdsa409k1.priv

Did you get this resolved? Any guidance would be great! Thanks in advance!

I’ve looked into creating a multi-arch docker image but that looks just too complicated… Maybe someone interested can create a pull request?