Hacker News new | past | comments | ask | show | jobs | submit login

As someone who uses Node.js and is in the exact same situation as the author, requiring Docker is the #1 reason I'm not going with Fly.io. There's a standard for launching a Node.js project, and that's running the "start" script `npm start`, so switching is trivial. I switched from a Linux machine to my current MacBook and I didn't have to make a single change in any of my Node.js projects.

Adding docker means adding a whole new layer to ALL of my projects, which I'd prefer to avoid specially when there's no need as Heroku has very clearly shown.




I hear you, it's nice to run on a platform that understands how to execute your entrypoint to start your program. Docker helps ensure more than that though.

How do your dependencies get installed? What happens if you depend on something in your package.json that isn't on the public npm repo? What happens if you need to compile some native code as part of one of your dependencies?

Do you need to depend on anything provided by the OS? Timezone data? Maybe you use sqlite as a storage backend and want to ship your database file as well. How do you include configuration data?

Docker drastically simplifies packaging and deployment, and gives you a ton of flexibility in where and how you run your code.


Agreed, if you have a complex project Docker helps standardize it. But if you have A LOT of simple projects where none of your points apply, then it actually makes it all more complex.


I installed FreeBSD on a OCI arm machine, made two Jail templates (iocage) and deploy everything that way, backup or redeployment to another host is as easy as zfs-send.

Oracle a problem? No, because my Jails can wander to Vultr, Hetzner (yes they sill support FreeBSD) and Amazon andandand, the only change is a DNS one.


Using Docker is relatively simple and requires little to no configuration, arguably less than a standard node project.

Regardless, as someone who uses a variety of languages and is in the exact same situation, my generic Makefile is probably easier to read and understand than any standard that you have probably achieved.


With a standard Node project, you'd need the Node configuration AND the Docker configuration. If I can do without Docker, why not?

> my generic Makefile is probably easier to read and understand than any standard that you have probably achieved

That sounds fairly rude for HN


"my generic Makefile is probably easier to read and understand than any standard that you have probably achieved. "

If you have the need to state this when it's not relevant, then I highly doubt you have readable Makefiles ;)


FWIW if it’s really that simple to run your projects, then your dockerfile would probably be just a few lines.


You know you can also use the heroku build packs on fly.io right?


I don't use any build packs in Heroku? Since a while back Heroku just recognizes the Node project and automatically works with it, no need for any extra file.

Or do you mean it's the same in Fly.io? If it auto-detects Node.js (through package.json), or at most allows for a dropdown to say "Node.js project", then that sounds about right for me.


> Or do you mean it's the same in Fly.io? If it auto-detects Node.js (through package.json),

Indeed the docs[1] say Fly automatically detects a Node.js project, so you don't need to create a Dockerfile.

[1]: https://fly.io/docs/languages-and-frameworks/node/#launch-th...


> At this point, flyctl creates an app for you and writes your configuration to a fly.toml file. You'll then be prompted to build and deploy your app. Once complete, your app will be running on fly.

Well it still creates a fly.toml for you, which is still a new config file that I have to maintain across projects.


You update the toml file once (e.g if you have a release step), and then don't touch it again. Its more powerful than Heroku, so with that it gives you the option of adding additional config options.

I mean it even creates the basic file for you, I'm not sure what the issue is?




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: