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
This commit is contained in:
parent
9d72d99f86
commit
ce8d945e6a
107
docker/docker-compose/README.md
Normal file
107
docker/docker-compose/README.md
Normal file
@ -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
|
||||
```
|
Loading…
Reference in New Issue
Block a user