Well, there is a good reason. To make the install more simple. IMHO containerization makes selfhosting way easier.
Well, there is a good reason. To make the install more simple. IMHO containerization makes selfhosting way easier.
When I see a software application that recommends Docker for deployment, I always assume that I'm going to need to do extra work to make it behave correctly. Whether that is figuring out how to make it auto-start, or how to forward network ports, or how to share a data partition with the host OS.
Non-docker installs are simpler. At least, for my skill set.
I see one dockerfile and 7 docker compose files (.yml)
The dockerfile does not apparently do anything useful. I'd be amazed if running that dockerfile by itself produced anything useful
Now, I don't know very much about docker compose, but I learned a bit of it in order to get this software running on my server. If I worked at it, I could almost certainly get a working install of PhotoPrism without using Docker, but it would be annoying work, and I wouldn't have any certainty. I wouldn't know that it was correct, and any time something didn't work the way I expect, I would worry that I screwed something up during the installation
Not to mention the added operational complexity involved in managing a dockerized application compared to managing e.g. an equivalent webapp deployed without containerization (systemd service file, configuration file, etc)
In any case, I found this in the docker/ subdirectory (if it was me I would have put it in the main README):
https://github.com/photoprism/photoprism/tree/develop/docker...
Building From Source
You can build and install PhotoPrism from the publicly available source code:*
git clone https://github.com/photoprism/photoprism.git
cd photoprism
make all install DESTDIR=/opt/photoprism Missing build dependencies must be installed manually as shown in our human-readable and versioned Dockerfile.
I haven't been able to find any dockerfile that lists dependencies. My guess is that the documentation is referring to some prior architecture or something similarNoticing the broken link points to photoprism/docker/develop/Dockerfile, I supposed they had moved it and indeed, just by going one parent up, the directoy photoprism/docker/develop/ contains subdirectories for lots of base systems, each one containing a Dockerfile that lists dependencies needed for each of them.
For example, for Ubuntu 20.04:
https://github.com/photoprism/photoprism/blob/develop/docker...
All the portability of Docker, plus (something close to) the ease of use of installing a distro package like an .rpm or .deb.