If you want to run bootstrap, the “discourse way” is
./launcher bootstrap app
./launcher destroy app
./launcher start app
But if you have just one container, there’s no reason not to just
./launcher rebuild app
like pretty much every example says. That stops the running container, bootstraps a new one, and starts it. If the bootstrap fails for some reason, you can (usually) restart the old one with ./launcher start app (as you’ve described).