Docker compose is what I'm using. I didn't even think about using makefiles though. I have my services split into multiple files, so I just made some convenience scripts to run the dev version or prod version, etc. I wanted to eventually deploy to kubernetes, but it's a lot to set up for an app that's so small right now. Heck, my client's IT department is so bad we can't actually even get them to deploy anything. It's a big ask to get an old engineering company to learn new tricks.