Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> there's no good reason for an app like this to require docker.

Well, there is a good reason. To make the install more simple. IMHO containerization makes selfhosting way easier.



I disagree with the contention that docker makes installs more simple. I would argue that it only makes installs more simple if you are already setup with Docker, and only when things go 100% correctly.

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.


Can't you just copy what the Dockerfile is doing bud? Plenty of home server enthusiasts love docker for the simplicity it brings to handling a bunch of software. Not trying to knock you, just wondering where the complexity is coming from for you.


Sure I can. But it's not always that simple. Let's look at the repository for the software discussed in this thread [1]

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)

[1] https://github.com/photoprism/photoprism


That Dockerfile doesn't seem to do anything because it inherits from another container that probably has more interesting stuff in it.

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


I found this too. They mention this:

  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 similar


And the word "Dockerfile" is a link to a nonexistent page... they definitely skipped their grep + sed update homework when moving things around.

Noticing 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...


This is why I like https://github.com/mother-of-all-self-hosting/mash-playbook and its associated Ansible roles for configuring various services.

All the portability of Docker, plus (something close to) the ease of use of installing a distro package like an .rpm or .deb.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: