Hi @Ben Hodges I did see your post over on MSDN. As we're doing service rollout migration from MSDN over to Q&A, certain forums have been closed. So, pleased to see you repost your question here!
Having said that, you do have the general idea. This video does a good job of showing you how to create your virtual directory and publishing from VS. It isn't necessary to place your web app in a virtual directory, you can simply publish to wwwroot and create virtual app directories for your remaining services (see image). You can FTP or utilize Azure DevOps to deploy to your virtual app. If you run into 500.35 errors with your virtual apps, add AspNetCoreModule to your csproj. If you run into any other issues, just let me know what errors you're hitting.
With regards to couchbase, can you elaborate on your use case? Are you using a hosted server or saving json files to the local folder?