Selig
Selig is a Docker project to set-up two Wordpress servers, one for a league, one for a team. It uses Caddy for the webserver and a single MariaDB instance for the server.
Each Wordpress instance setups their own database within the MariaDB instance.
Setup
Environment Files
There are two environment files, one at the project root and one under each WordPress folder (cmbabaseball, chihounds).
Init
Each WordPress site has an wp-install.sh script (cmbabaseball, chihounds). It creates the database and install Wordpress using the common wp-admin user info provided in the project root via a ephemeral wp-cli container. (Theoretically, this probably can be changed by overwriting the environment variables in the website-specific env file, but I didn't test that and I don't know what the order would have to be). It also preinstalls a list of plugins as defined in the site's .env.
Currently, the scripts are exactly the same, so they are symbolic links to the shared directory.
./cmbabaseball/init-wordpress
./chihounds/init-wordpress
OR
./*/init-wordpress
Import
Since I was starting from a couple of existing sites, each WordPress site has an import-wordpress.sh (cmbabaseball, chihounds). These have been packaged as a import.sql DB export and a import-uploads.tgz archive of the uploads folder.
./cmbabaseball/wp-import.sh
./chihounds/wp-import.sh
OR
./*cmbabaseball*/wp-import.sh
Tying it together
To put it together succintly, you can run the following to do all the init scripts, then the import scripts.
/*/wp-install.sh && ./*/wp-import.sh