-
Notifications
You must be signed in to change notification settings - Fork 71
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
p
ore
and the existing wwiv directories will live under that. i.e.data
becomesp/data
- Move all binaries to
/e/bin
and introduce an environment variable WWIV_BIN_DIR that points to${WWIV_DIR}/e/bin
by default. - Move the source of truth for configuration to
p/data/config.json
and have it pointed to by a 2nd environment variableWWIV_CONFIG_FILE
. wwiv and wwivconfig will also write out a legacyconfig.dat
if 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_DIR
is used, defaulting toWWIV_DIR/p/logs
for the log file location. - Now the WWIV_DIR is also ephemeral