Docker Image Ready to Run

There is no ready-to-run Baïkal Docker image in Docker Hub yet because a few issues must be addressed before making it available for public use:

  1. The host and domain names should be passed to the calendar container when it starts; they are indispensable for the correct Postfix and web server configuration and right now they're coded in the Dockerfile.

  2. A public Baïkal image would work best with a Docker volume container for data storage, including disaster recovery, backup procedures, and data management; for now it uses a directory in the host mapped to a virtual volume.

  3. Optional support for Let's Encrypt in the image so that the Baïkal server does its own SSL termination; the current image assumes a data center approach of separating the application (Baïkal) from SSL termination (firewall, reverse proxy, gateway, etc.). Best SysOp practices suggest keeping them separate, but practicality of deploying the Baïkal server in a single image would offer tremendous value for small shops and start ups.

  4. Remove Postfix from the Docker image; this requires code changes in Baïkal to use Swift Mailer instead of the PHP mail() function, plus a mechanism for passing the MX server or relay configuration to the container over environment variables (similar to 1).

The sabre/dav team is working toward sorting out the best solutions to these issues.

A 100% stand alone, ready-to-run Baïkal image will be available at the end of Q3 2016 via Docker Hub.

Why is the image based on Ubuntu Server instead of Alpine?

Using the smallest container possible is considered a Docker best practice. Alpine is the smallest distribution basic Docker image; it weighs 2 MB against 180 MB of the basic Ubuntu image. So, why use the Ubuntu image?

The main reasons: familiarity and availability.

The ready-to-run Baïkal image may be based on Alpine at that point.