-
Notifications
You must be signed in to change notification settings - Fork 84
WWIV in Containers
granitepenguin edited this page Aug 30, 2018
·
4 revisions
To run WWIV in containers, we'll want to sort out a few things.
- What's persistent data. This is usually the following:
- data/
- dloads/
- gfiles/
- msgs/
- scripts/
- *.log files in the root.
- config.dat/config.ovr in the root.
- config.ovr in the root
- INI files
- WWIVnet directories (p/nets/)
- DOORS directory (p/doors/)
- What is ephemeral
- The binaries
- readfile files, documentation
- attach/
- batch/%n
- temp/%n
- upgrade.{bat,ps1,sh}
Goal: To make it easy to run wwiv natively in a container. To do so we need to clearly separate persistent from ephemeral and decide what will go in to the ephemeral container and what will go into the data volume and allow that to work seamlessly with upgrade and rollbacks.
- Add a level of indirection between persistent and ephemeral directories in wwiv by having
a top level directory of
poreand the existing wwiv directories will live under that. i.e.databecomesp/data - Move all binaries to
/e/binand introduce an environment variable WWIV_BIN_DIR that points to${WWIV_DIR}/e/binby default. - Move the source of truth for configuration to
p/data/config.jsonand have it pointed to by a 2nd environment variableWWIV_CONFIG_FILE. wwiv and wwivconfig will also write out a legacyconfig.datif it doesn't exist in WWIV_DIR as needed. - WWIV INI files will also move to data (or we can make new directory called config to hold that and the wwiv.json file
- Final environment variable of
WWIV_LOG_DIRis used, defaulting toWWIV_DIR/p/logsfor the log file location. - Now the WWIV_DIR is also ephemeral