Why don't you just prepare the data you need in the c#?
The custom jsreport script doesn't make so much sense when you send the whole request specification in the c#.
It is mostly used when you have a template stored inside jsreport store and want to do some calculation on the incoming data.
Means I need to call the report template generated from jsreport studio... right..?
Right now you use jsreport.Local and jsreport.Binary nugets. These embeds jsreport binary inside and start it from inside your application running inside iis. This can be problematic. I proposed you start jsreport outside iis as a normal process and connect to it from your app. It should be just one line change for you as I demonstrated.
Here is how you can start jsreport https://jsreport.net/on-prem
However, I recommend testing the code/template the first on your local jsreport instance, outside .net.
Then you can replicate the API call using postman or some tool like that and then try the same with .net.
You get a better troubleshooting flow with this approach.
This project (jsreport) has nothing to do with jasper reports.
The link you provided (jsreports) is from a completely different project, which is actually not being developed for some time as far as I know.
It seems you have twice FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base in your dockerfile.
It should be there just once. Maybe the apt-get part isn't running actually. Please remove the second FROM declaration and try it again.
You need to make sure the extension is properly loaded into the solution. You do this by installing the extension with npm inside of the jsreport folder. And also make sure that your jsreport.config.json file has the key/value for "discover": true