Upgrading
Set TRING_TAG in .env to the release you want, then:
docker compose pulldocker compose up -dThe tring container drains on restart: it stops taking new calls and lets live ones finish, for up to TRING_GATEWAY_DRAIN_SECONDS (300 by default). Upgrade outside call hours when you can.
One-time: the single tring image
Section titled “One-time: the single tring image”From this release Tring ships as one image, shridh0r/tring, which runs both the api role (REST API, console) and the gateway role (call plane). The old tring-api and tring-gateway images get no new versions.
If you track :develop, docker compose pull with the old docker-compose.yml still succeeds but keeps the old version, with no error. (With a pinned release tag the old images don’t exist, so the pull fails loudly.) You have to switch to the new docker-compose.yml once:
-
Back up
docker-compose.yml. -
Fetch the new
docker-compose.ymlfor the version you’re moving to. Either run the installer with that version,TRING_VERSION=<new tag> sh install.sh(developfor:develop), or copydocker-compose.ymlfrom the repository at that tag. Runninginstall.shwithoutTRING_VERSIONre-fetches the version already in.env, which is the old compose. -
Set
TRING_TAGin.envto the same version. -
Outside call hours, run:
Terminal window docker compose pulldocker compose up -d --remove-orphans--remove-orphansstops the oldtring-apiandtring-gatewaycontainers. Without it they keep running and the newtringcontainer can’t bind:8085,:8087and:8089. -
Check that
curl -s localhost:8087/healthzreturns 200, then place one web call and one phone call.
Apart from TRING_TAG, your .env needs no changes. Logs are now in one place: docker logs -f tring.
One behaviour change: the api and the call plane now restart together, so a deploy that only changes the api also drains live calls.