diff options
| author | Daneyon Hansen <danehans@cisco.com> | 2015-02-18 05:19:45 +0000 |
|---|---|---|
| committer | Daneyon Hansen <danehans@cisco.com> | 2015-02-19 01:14:46 +0000 |
| commit | ce8d945e6a33de683830e9bb92b2ff45cf6b7135 (patch) | |
| tree | 67ef60ae2456635740a41103183690a2abe0ac1a /docker | |
| parent | 9d72d99f86b300bedd188aa2c6db6daed0201ec2 (diff) | |
| download | kolla-ce8d945e6a33de683830e9bb92b2ff45cf6b7135.tar.gz kolla-ce8d945e6a33de683830e9bb92b2ff45cf6b7135.zip | |
Implements: blueprint rabbit-container-set
This patch provides an initial implementation of docker-compose
(i.e. fig). docker-compose runs in a container. The container is
only instantiated when invoked to manage a container set
(i.e. docker-compose up) and then stopped when the command is
finished executing.
Change-Id: I797f06bed773192129b57aae9824d4f97c70b3ab
Diffstat (limited to 'docker')
| -rw-r--r-- | docker/docker-compose/README.md | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/docker/docker-compose/README.md b/docker/docker-compose/README.md new file mode 100644 index 000000000..a63e7fbc9 --- /dev/null +++ b/docker/docker-compose/README.md @@ -0,0 +1,107 @@ +Docker Compose (ie Fig) +======================= + +[](https://app.wercker.com/project/bykey/d5dbac3907301c3d5ce735e2d5e95a5b) + +Fast, isolated development environments using Docker. + +Define your app's environment with Docker so it can be reproduced anywhere: + + FROM python:2.7 + ADD . /code + WORKDIR /code + RUN pip install -r requirements.txt + CMD python app.py + +Define the services that make up your app so they can be run together in an isolated environment: + +```yaml +web: + build: . + links: + - db + ports: + - "8000:8000" + - "49100:22" +db: + image: postgres +``` + +(No more installing Postgres on your laptop!) + +Then type `docker-compose up`, and Compose will start and run your entire app. + +There are commands to: + + - start, stop and rebuild services + - view the status of running services + - tail running services' log output + - run a one-off command on a service + +Installation and documentation +------------------------------ + +Full documentation is available on [Fig's website](http://www.fig.sh/). + +Use wtih Kolla +-------------- + +Fig (ie docker-compose) is being used to compose one or more co-located +containers know as [container sets][]. Fig is deployed as a container from the +kollaglue [repository][] to Kolla nodes using the Heat orchestration [template]. +The fig container creates a host mount to communicate with the docker api over +a unix socket. The docker engine could be configured to expose the API over TCP +and may be evaluated for future use. An additional host mount to +/opt/docker-compose for fig to read the .yml file. This allows for seperating +the fig code from the data/configuration information. + +Either create or modify the existing docker-compose.yml file at +/opt/docker-compose. Here is a simple example of a single container for +RabbitMQ + +``` +rabbitmq: + image: kollaglue/fedora-rdo-rabbitmq + environment: + RABBITMQ_NODENAME: rabbit01 + RABBITMQ_USER: rabbit + RABBITMQ_PASS: password + net: "host" + ports: + - "5672:5672" + - "15672:15672" + - "4369:4369" + - "25672:25672" + privileged: true +``` + +Then run up to instantiate the container-set: +``` +$ docker run --privileged -v /opt/docker-compose:/opt/docker-compose -v /var/run/docker.sock:/var/run/docker.sock kollaglue/fedora-rdo-docker-compose up -d +``` +The -d flag tells fig to run the container set in daemonized mode. + +[container sets]: https://github.com/stackforge/kolla/blob/master/specs/containerize-openstack.rst +[template]: https://github.com/stackforge/kolla/tree/master/devenv +[repository]: https://registry.hub.docker.com/u/kollaglue/fedora-rdo-docker-compose/ + +Contribute to Kolla Fig +----------------------- + +Clone the repo: +``` +git clone https://github.com/docker/fig.git +``` +Set the following ENVs in the project's Dockerfile: +``` +ENV COMPOSE_PROJECT_NAME kollaglue-fedora-rdo +ENV COMPOSE_FILE /opt/docker-compose/docker-compose.yml +``` +Hack as needed, then build the image: +``` +$ docker build -t kollaglue/kollaglue-fedora-rdo-docker-compose . +``` +Push the image to the kollaglue repo +``` +$ docker push kollaglue/fedora-rdo-docker-compose:latest +``` |
