Genuine question, is a Procfile really that preferable to a Dockerfile with equivalent functionality?
> cmd: python helloworld.py
doesn't seem massively less complicated than
FROM alpine
CMD ["python", "helloworld.py"]
FWIW, I've never used heroku in production so maybe it's more about the constraints of heroku than the number of words, but it just doesn't seem like a huge deal to me.
I'm familiar with docker but certainly not an expert, so this is surprising to me. Is it really possible to have a single line dockerfile?
The smallest one I've used was probably a screen full, due to updating packages, setting up bundler paths, etc. A production dockerfile is much larger with non-root user shenanigans, etc.
But to answer your question about Heroku, a Procfile is much smaller and more constrained in scope than a Dockerfile.
> I'm familiar with docker but certainly not an expert, so this is surprising to me. Is it really possible to have a single line dockerfile?
Not single line, but two lines, sure. Though you're at the mercy of your upstream image and how it configures things. Though I guess that's also true of buildpacks.
Plenty of my Dockerfiles are no more than a couple lines.
Heroku was still nicer in most ways of course, at least in my opinion.
A Procfile works well with what you'd want to do on Heroku: run a webserver, and maybe run some other worker process. It's a single line per process, equivalent to what you run locally.
> cmd: python helloworld.py
doesn't seem massively less complicated than
FROM alpine CMD ["python", "helloworld.py"]
FWIW, I've never used heroku in production so maybe it's more about the constraints of heroku than the number of words, but it just doesn't seem like a huge deal to me.