I already have Discourse installed and running. Every time I rebuild the app, it pulls the launcher repo, the discourse/base Docker image, and the Discourse repository.
I want to limit this behavior so that the rebuild doesn’t check for updates and pull them automatically unless a specific parameter is passed.
Yes, I’m using the standard standalone approach. I understand the need to keep the app updated. My idea is to add a flag to the launcher when I want to update the repository.
The point of stable is lack of change. Why are you rebuilding at all?
The reason that it pulls the container is to keep it in parity with the requirements of the discourse code.
If you want to do something like enter the container without doing a pull you can
docker exec -it app bash
And if you wanted to add a plugin without rebuilding you could enter the plugin directory and clone it and then migrate the database, but you still need to make she your getting the right commit of the plugin for strangle) stable.
Given stable releases are relatively rare, they don’t present breaking changes at all often, and usually come with important security updates when there is an update, I do not understand your requirement.
To my mind adding a plugin is a good excuse to update and ensure you’ve pulled all the available updates.
Not updating on stable, imho, is bad practice as that may expose you to known vulnerabilities for longer.
It might work with API only plugins, but any javascript of new plugins needs to be compiled which happens in the build process.
Therefore, to add a new plugin you must perform a rebuild in most cases.
The other issue you have is that changing core build scripts may get you into deep trouble if you are not careful, especially if there is a significant enough change to core scripting.