If it helps:
I build full stack, mostly polyglot applications (usually C and C#) frameworks w/web-apps and I just take my Linux bundles and package them inside a container as part of a CI. The requires user's users to build containers locally, but it does ensure that builds are consistent with bare-metal and containerized, plus it makes CI easy. I then give users a Taskfile.dev script for cross-platform bootstrapping. It's not a complete solution, but I think it's a good middle ground.
That being said, it now cost's me very little, aside from testing time, to target both containers and bare-metal.