- Use a single Dockerfile for all Zeppelin services
- Add a Dockerfile in project root that can be used by
app hosting services
- Provide a standalone and lightweight prod setup
- Standalone is the same as the old setup, with mysql+nginx
- Lightweight only runs bot+backend+dash, no mysql/nginx
- Remove mounted mysql data folders for dev and prod
- This resolves permission issues caused by the mount
- The mysql service uses a regular named volume now
- Simplify .env options and clearly separate different prod setups
- Remove update.sh
- Different setups require different update procedures, so a common
update.sh no longer works
Production containers now copy the Zeppelin source files at
build-time rather than using a shared volume. This means fewer
permission issues and backend/dashboard builds only have to run once
at build-time, not every time the containers are started.
Docs in PRODUCTION.md have been updated accordingly.
Something in our signal handlers/code that touched signal handlers
conflicted with clinic.js's signal handler code. With this commit,
we don't touch signal handlers at all if DEBUG mode is enabled.
The env var now only affects the bot container, not the API.
This is because we don't currently need this extra debug information
for the API.
For the bot, with DEBUG set, the bot container will now start and do
nothing. To start the bot in this container in debug mode, open a
shell into the container and run the start-bot-prod-debug script
manually. This change was made to allow more control over what
profiling scripts and other things are run in the debug environment.