Skip to main content
The frontend is a stateless container. There is no volume and no database migration, so an upgrade is a container swap and a rollback is a rename. These steps assume the production topology: the container bound to 127.0.0.1:8080, with host nginx serving the public origin and handling /api and /collect. In that shape the container joins no Docker network and needs no --add-host. Use an immutable version tag, not latest.

Upgrade

Pull the version you intend to deploy:
Copy the running container’s environment into a temporary root-only file. Drop the old CUSTOS_APP_VERSION override — the new image already carries its own build version:
Keep the old container around, stopped, so rollback stays cheap. Then start the new image with the same runtime configuration:
The env file is shredded because it carries the full runtime configuration of a live deployment. It holds no secrets by design, but it does not need to persist on disk either.
Verify the container and the public route:
Once verified, remove the old container:

Roll back

While custos-frontend-old still exists: