From 947742852e5d6f1f8ddd20a764165531b510d2f3 Mon Sep 17 00:00:00 2001 From: Fred Lifton Date: Mon, 6 Apr 2015 16:47:07 -0700 Subject: [PATCH] Prepping for 1.6 release. Adds release notes and edits/revises new Compose in production doc. --- docs/index.md | 16 ++++++++++++++++ docs/production.md | 48 +++++++++++++++++++++++----------------------- 2 files changed, 40 insertions(+), 24 deletions(-) diff --git a/docs/index.md b/docs/index.md index a75e7285a..da5a8efdb 100644 --- a/docs/index.md +++ b/docs/index.md @@ -5,6 +5,8 @@ page_keywords: documentation, docs, docker, compose, orchestration, containers # Docker Compose +## Overview + Compose is a tool for defining and running complex applications with Docker. With Compose, you define a multi-container application in a single file, then spin your application up in a single command which does everything that needs to @@ -191,3 +193,17 @@ At this point, you have seen the basics of how Compose works. [Rails](rails.md), or [Wordpress](wordpress.md). - See the reference guides for complete details on the [commands](cli.md), the [configuration file](yml.md) and [environment variables](env.md). + +## Release Notes + +### Version 1.2.0 (April 7, 2015) + +For complete information on this release, see the [1.2.0 Milestone project page](https://github.com/docker/compose/wiki/1.2.0-Milestone-Project-Page). +In addition to bug fixes and refinements, this release adds the following: + +* The `extends` keyword, which adds the ability to extend services by sharing common configurations. For details, see +[PR #972](https://github.com/docker/compose/pull/1088). + +* Better integration with Swarm. Swarm will now schedule inter-dependent +containers on the same host. For details, see +[PR #972](https://github.com/docker/compose/pull/972). diff --git a/docs/production.md b/docs/production.md index d267ed41f..8524c99b8 100644 --- a/docs/production.md +++ b/docs/production.md @@ -5,73 +5,73 @@ page_keywords: documentation, docs, docker, compose, orchestration, containers, ## Using Compose in production -While **Compose is not yet considered production-ready**, you can try using it -for production deployments if you're feeling brave. Production-readiness is an -active, ongoing project - see the +While **Compose is not yet considered production-ready**, if you'd like to experiment and learn more about using it in production deployments, this guide +can help. +The project is actively working towards becoming +production-ready; to learn more about the progress being made, check out the [roadmap](https://github.com/docker/compose/blob/master/ROADMAP.md) for details -on how it's coming along and what needs to be done. +on how it's coming along and what still needs to be done. When deploying to production, you'll almost certainly want to make changes to -your app configuration that are more appropriate to a live environment. This may -include: +your app configuration that are more appropriate to a live environment. These +changes may include: - Removing any volume bindings for application code, so that code stays inside the container and can't be changed from outside - Binding to different ports on the host -- Setting environment variables differently (e.g. to decrease the verbosity of +- Setting environment variables differently (e.g., to decrease the verbosity of logging, or to enable email sending) -- Specifying a restart policy (e.g. `restart: always`) to avoid downtime -- Adding extra services (e.g. a log aggregator) +- Specifying a restart policy (e.g., `restart: always`) to avoid downtime +- Adding extra services (e.g., a log aggregator) For this reason, you'll probably want to define a separate Compose file, say `production.yml`, which specifies production-appropriate configuration. - -Once you've got an alternate configuration file, you can make Compose use it +Once you've got an alternate configuration file, make Compose use it by setting the `COMPOSE_FILE` environment variable: $ COMPOSE_FILE=production.yml $ docker-compose up -d > **Note:** You can also use the file for a one-off command without setting -> an environment variable by passing the `-f` flag, e.g. +> an environment variable. You do this by passing the `-f` flag, e.g., > `docker-compose -f production.yml up -d`. ### Deploying changes When you make changes to your app code, you'll need to rebuild your image and -recreate your app containers. If the service you want to redeploy is called -`web`, this will look like: +recreate your app's containers. To redeploy a service called +`web`, you would use: $ docker-compose build web $ docker-compose up --no-deps -d web -This will first rebuild the image for `web` and then stop, destroy and recreate +This will first rebuild the image for `web` and then stop, destroy, and recreate *just* the `web` service. The `--no-deps` flag prevents Compose from also recreating any services which `web` depends on. -### Run Compose on a single server +### Running Compose on a single server You can use Compose to deploy an app to a remote Docker host by setting the -`DOCKER_HOST`, `DOCKER_TLS_VERIFY` and `DOCKER_CERT_PATH` environment variables -appropriately. [Docker Machine](https://docs.docker.com/machine) makes managing -local and remote Docker hosts very easy, and is recommended even if you're not -deploying remotely. +`DOCKER_HOST`, `DOCKER_TLS_VERIFY`, and `DOCKER_CERT_PATH` environment variables +appropriately. For tasks like this, +[Docker Machine](https://docs.docker.com/machine) makes managing local and +remote Docker hosts very easy, and is recommended even if you're not deploying +remotely. Once you've set up your environment variables, all the normal `docker-compose` -commands will work with no extra configuration. +commands will work with no further configuration. -### Run Compose on a Swarm cluster +### Running Compose on a Swarm cluster [Docker Swarm](https://docs.docker.com/swarm), a Docker-native clustering system, exposes the same API as a single Docker host, which means you can use Compose against a Swarm instance and run your apps across multiple hosts. Compose/Swarm integration is still in the experimental stage, and Swarm is still -in beta, but if you're interested to try it out, check out the +in beta, but if you'd like to explore and experiment, check out the [integration guide](https://github.com/docker/compose/blob/master/SWARM.md).