I think the deploy functionality does not work with bind mounts on just the flows.json and related files.
I think the deploy first writes the json to a file flows.json.$$$ and then tries to copy it over the flows.json.
With the bind mount active that results in a resource busy error....
Is there a specific reason to update flows.json this way instead of writing the contents in the file directly?
Found a workaround by mounting a local directory as a subdirectory of the container's /data
then in the setting.js changed the flowFile entry to match that location.
only other thing to do in the container's environment is to clear the FLOWS environment variable
because it is used by the startupscript of nodered in the container, and this overrides the name in the settings.js.