Digikam for AMD64

I’d like to install a containerised digikam on one of my Docker nodes (Ununtu 24.04.4 LTS on ARM64 / Rockchip). I’ve even found one at DockerHub, but installing it the way described on the hubpage isn’t working:

mixtile@blade3n4:~$ docker run -d \ 
  --name=digikam \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Etc/UTC \
  -p 3000:3000 \
  -p 3001:3001 \
  -v /path/to/config:/config \
  --shm-size="1gb" \
  --restart unless-stopped \
  lscr.io/linuxserver/digikam:latest
Unable to find image 'lscr.io/linuxserver/digikam:latest' locally
docker: Error response from daemon: no matching manifest for linux/arm64/v8 in the manifest list entries: no match for platform in manifest: not found

Run 'docker run --help' for more information

I’ve googled this error to find out that it’s maybe a missing binary for ARM64 (despite having searched for an ARM64 version explicitly). So: Is there an easy way to get digikam on an ARM64 machine? Or do I have to build an image myself? I’ve never done this. :frowning:

There is no Linux arm64 release for the application itself.

So either you succeed with running the image using --platform linux/amd64 or you compile the application from the sources and hope for the best that it’s actually working…

To run images created for another platform you will need following dependencies:

Note: the architecture emulation might be slow on your single board computer.

…and this is what I can’t stand. :frowning: So I’ll have to build it myself. Is this hard work for a fairly complicated app like Digikam?

Update: I’ve just found a port of digikam for ARM64, which seems to run on my machine, but I’m gonna perform a series of tests during the next days: ajvcorreia/arm64digikam - Docker Image

I am not sure what you expect from whom, when you want to run an application on a cpu architecture where no supported releae packages exist.

It looks like noone maintains an active image for the cpu architecture you are looking for. Given the age of the image you found and the number of vulnerabilites it has, it can not be recommended to be used. This brings you basically back to square one: you will either need to find someone else who builds the image for you and maintains it in the futore, or you will need to build it yourself. Chances are slim at best that someone is going to create such an image and is willing to maintain it, if they don’t have the need to run this app on this cpu architecture..

You can check the vulnerabilites with Docker Desktop yourself:

docker scout quickview ajvcorreia/arm64digikam:latest
    ✓ SBOM of image already cached, 1725 packages indexed

    i Base image was auto-detected. To get more accurate results, build images with max-mode provenance attestations.
      Review docs.docker.com ↗ for more information.

 Target   │  ajvcorreia/arm64digikam:latest  │   12C   115H   418M   139L     1?
   digest │  ec7a43032c0c                    │

Though, the good thing is that you now know it can be done for arm64!

You’re right: The version of digikam the image contains is 5.6.0, and this is age-old. What’s more interesting is the fact that it’s based on the more-or-less official digikam image from linuxserver.io, but apparently, the author of the ARM64 image does not keep track of updates of the “original”:

-------------------------------------
          _         ()
         | |  ___   _    __
         | | / __| | |  /  \ 
         | | \__ \ | | | () |
         |_| |___/ |_|  \__/
Brought to you by linuxserver.io
-------------------------------------

I meant: Running SW made for a different arch under emulation may be an emergency measure (when some closed-source SW is no longer maintained, but you need it urgently), but it’s not a permanent solution.

It would have been nice, if the maintainer would have kept the github repo (if it ever existed) so others could have learned what changes he made. The next best thing would be to pull the image and check docker history --no-trunc jvcorreia/arm64digikam:latest. Would have been nice, if any of the dockerfile-from-image images would work with recent docker versions, as they seem to create a Dockerfile (the forum search should find posts about how to lower the min-api version for the Docker Engine v29).

Thanks for clarification! Fully agree!