Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Using this Docker image doesn't give you one of the big benefits of Docker: being able to package your application in a light-weight way. This image creates an entire init system inside of Docker! May as well just use a virtual machine at that point.

   * Ruby: https://registry.hub.docker.com/_/ruby/
   * Python: https://registry.hub.docker.com/_/python/
   * Node: https://registry.hub.docker.com/_/node/
   * Meteor: https://registry.hub.docker.com/u/danieldent/meteor/
What's special about those? You get an ONBUILD version too. You can package up your app along with Python/Ruby/Node/Meteor.

And the other dependencies (i.e. database) have Docker images of their own that you can use.

Nice and composable, reproducible infrastructure.

This phusion-passenger-all-in-one monstrosity puts us back in the pre-Docker days.



I am the author of passenger-docker. It is not true that this image is like creating a virtual machine, or that it is not lightweight. The image is very-much in line with the Docker philosophy, as I’ve described in this blog post: http://blog.phusion.nl/2015/01/20/baseimage-docker-fat-conta...

You talked about “an entire init system”, but this init system is a lightweight, stripped down variant written especially for Docker. The entire thing is just a few hundred lines Python script. You may be thinking that an init system is not necessary in Docker, but that is not true, as I’ve explained in “Docker and the PID 1 zombie reaping problem”: http://blog.phusion.nl/2015/01/20/docker-and-the-pid-1-zombi...

With passenger-docker, you only create an image with your web app in it, plus an app server to run that web app. Nothing more. The database is still external. Memcached and Redis are not installed unless you explicitly enable them. The image is lightweight as you can expect from Ruby, Python and Node.js apps.

In fact, we've explicitly split the image 8 variants, each variant containing only the minimum possible: https://github.com/phusion/passenger-docker#image_variants

Passenger-docker is very much in line with the idea of composable, reproducible infrastructure. Nothing in passenger-docker violates those principles.


Hey FooBarWidget,

I just wanted to thank you for all your hard work and for putting this out there for people to get up and running with Docker.

Of the videos I've watched on deploying Ruby on Rails apps with Docker, this container always gets a shoutout as an easy way to get started.


Cool, I'm glad you appreciate it and good to know it's featured in videos. Can you tell me which videos? I'm not aware of anything like that.



You do realize that 'an entire init system' is a 100 line python script right?

Packaging your application in a 'light-weight' way is not one of the big benefits of Docker. Packaging your application in an isolated environment is _the_ big benefit of Docker, and that's exactly the benefit you get with this image.

There's nothing monstrous about this image. It's based on the official Ubuntu image, has a few extra packages installed to satisfy some more dependencies so it's easier to use for other users, and Passenger itself is just a few MB.

You probably don't get Docker very well. The idea is that you start a Docker container, and after a while a service is online on the port you EXPOSE-d. If a container satisfies those properties, then it's as composable and reproducible as any other. It's the magic of Docker.


> May as well just use a virtual machine at that point.

While this isn't true (as explained by others), I don't know why there's such dismissal in the docker community for a VM with ~zero boot time, good tools without requiring ssh (`docker cp`, `docker diff`, `docker exec`, volumes) and layers. These are good things! Of course packaging in a light-weight way is nice if you can manage that as well but it's not everything.

> Nice and composable, reproducible infrastructure.

Phusion passenger is also reproducible you're still using (the highly touted) Dockerfiles. I've no idea how you want to define composability.




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

Search: