Public Repository

Last pushed: 21 days ago
Short Description
Base image for Ruby, Python, Node.js and Meteor web apps, Ruby 2.2 variant
Full Description

In line with Phusion Passenger's goal, passenger-docker's goal is to make Docker image building for web apps much easier and faster.

Why is this image called "passenger"? It's to represent the ease: you just have to sit back and watch most of the heavy lifting being done for you. Passenger-docker is part of a larger and more ambitious project: to make web app deployment ridiculously simple, to heights never achieved before.

Learn more at the Github repository, including usage instructions.

Why use passenger-docker?

  • Your Dockerfile can be smaller.
  • It reduces the time needed to write a correct Dockerfile. You won't have to worry about the base system and the stack, you can focus on just your app.
  • It sets up the base system correctly. It's very easy to get the base system wrong, but this image does everything correctly. Learn more.
  • It drastically reduces the time needed to run docker build, allowing you to iterate your Dockerfile more quickly.
  • It reduces download time during redeploys. Docker only needs to download the base image once: during the first deploy. On every subsequent deploys, only the changes you make on top of the base image are downloaded.

Contents

Passenger-docker is built on top of a solid base: baseimage-docker.

Basics (learn more at baseimage-docker):

  • Ubuntu 14.04 LTS as base system.
  • A correct init process (learn more).
  • Fixes APT incompatibilities with Docker.
  • syslog-ng.
  • The cron daemon.
  • The SSH server, so that you can easily login to your container to inspect or administer things. Password and challenge-response authentication are disabled by default. Only key authentication is allowed.
  • Runit for service supervision and management.

Language support:

  • Ruby 1.9.3, 2.0.0,0 2.1.5, and 2.2.0; JRuby 1.7.18.
    • 2.2.0 is configured as the default.
    • MRI Ruby is installed through the Brightbox APT repository. We're not using RVM!
    • JRuby is installed from source, but we register an APT entry for it.
    • JRuby uses OpenJDK 8 from the openjdk-r PPA.
  • Python 2.7 and Python 3.0.
  • Node.js 0.10, through Chris Lea's Node.js PPA.
  • A build system, git, and development headers for many popular libraries, so that the most popular Ruby, Python and Node.js native extensions can be compiled without problems.

Web server and application server:

  • Nginx 1.6. Disabled by default.
  • Phusion Passenger 4. Disabled by default (because it starts along with Nginx).
    • This is a fast and lightweight tool for simplifying web application integration into Nginx.
    • It adds many production-grade features, such as process monitoring, administration and status inspection.
    • It replaces (G)Unicorn, Thin, Puma, uWSGI.
    • Node.js users: watch this 4 minute intro video to learn why it's cool and useful.

Auxiliary services and tools:

  • Redis 2.6, through Rowan's Redis PPA. Disabed by default.
  • Memcached. Disabled by default.

Usage

You can learn more at the Github repository.

Docker Pull Command
Owner
phusion