aboutsummaryrefslogtreecommitdiff
path: root/docker/docker-compose/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'docker/docker-compose/README.md')
-rw-r--r--docker/docker-compose/README.md107
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)
+=======================
+
+[![wercker status](https://app.wercker.com/status/d5dbac3907301c3d5ce735e2d5e95a5b/s/master "wercker status")](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
+```