How to distribute docker application stacks?

I’ve got a relatively simple enterprise app stack - a database, app server and HTTP server. I’m trying to figure out how best to distribute it.

Just a docker compose file might work for some customers who have cloud servers, though I’m not sure if that’s ideal - expecting them to have knowledge of docker. An EC2 marketplace image might work well for some, but obviously is EC2 only which isn’t great.

And some customers will want to run it on their internal networks where internet access might not be available. Virtual image/appliance perhaps? This only needs to get them a basic system up and running, I’m not worried about availability or redundancy, if they need that it’ll have to be a site visit.