Thanks for the information.
On 8/5/21 6:27 PM, IGnatius T Foobar wrote:
>* VM = OS + Docker + Citadel
Right. It should be ridiculously easy. I'm discovering a lot of interesting
things about Docker, which are helping to make things nice and slick:
--> I discovered the "--network host" option. This is insanely great, because
it makes the application in the container bind directly to the host's network
instead of requiring the host to proxy the ports on its own. Since the Citadel
suite opens a LOT of ports, this is yuuuuuge.
--> "--mount type=" for volumes is pretty cool. This will allow new users
to take advantage of traditional Docker volumes, and upgraders to attach to
an existing Citadel database if they are, for example, moving up from Easy
Install.
--> Since all of our data lives in the persistent volume, it appears to be
perfectly OK to run docker with the "--rm" flag, causing the container to
delete itself after it exits.
The strategy here is to ship the container itself, plus a nice little harness
script called "run-citadel.sh". This sets up the environment and runs the
application in the container. Docker experts can ignore the script and run
Citadel however they prefer, be it in a Kubernetes cluster or in a public
cloud or whatever. I'll include options to "install" it on the host, starting
up at runtime by creating systemd unit files etc.
I also have a "migrate" mode already working, which was built as part of
the AppImage effort. When you run the container in this mode it fires up
a server and goes into an interactive screen to migrate your data from an
existing Citadel server. It's really really cool.
I can't quite explain it, but this just "feels" more solid than the previous
effort.