Define and run multi-container applications with Docker
Go to file
Aanand Prasad e6016bd5b4 Merge pull request #104 from Gazler/documentation/port-strings
Documentation: Include notes on mapping ports
2014-03-03 16:21:31 +00:00
bin Add script to build an OS X binary 2014-03-03 15:09:56 +00:00
docs Merge pull request #104 from Gazler/documentation/port-strings 2014-03-03 16:21:31 +00:00
fig Merge pull request #120 from marksteve/link-name 2014-03-03 11:22:57 +00:00
script Add script to build Linux binary 2014-03-03 15:10:02 +00:00
tests Fix tests importing six 2014-03-03 12:25:38 +00:00
.gitignore Add script to build an OS X binary 2014-03-03 15:09:56 +00:00
.travis.yml Test Docker 0.8.0 on Travis 2014-02-07 10:35:18 -08:00
CHANGES.md Ship 0.2.2 2014-02-17 21:37:31 +00:00
Dockerfile Use Python base image and run as normal user 2014-03-03 15:10:02 +00:00
LICENSE Add license 2013-12-09 12:01:44 +00:00
MANIFEST.in remove tests from distribution build 2014-02-23 03:37:31 +01:00
README.md Merge pull request #104 from Gazler/documentation/port-strings 2014-03-03 16:21:31 +00:00
requirements-dev.txt Add script to build Linux binary 2014-03-03 15:10:02 +00:00
requirements.txt Remove six from requirements 2014-03-03 12:08:38 +00:00
setup.py Update homepage in setup.py 2014-01-27 18:42:00 +00:00
tox.ini Added tox file 2014-01-06 17:58:49 +00:00

README.md

Fig

Build Status PyPI version

Fast, isolated development environments using Docker.

Define your app's environment with Docker so it can be reproduced anywhere:

FROM orchardup/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:

web:
  build: .
  links:
   - db
  ports:
   - "8000:8000"
   - "49100:22"
db:
  image: orchardup/postgresql

Note When mapping ports in the format HOST:CONTAINER you may experience erroneous results when using a container port lower than 60. This is due to YAML parsing numbers in the format "xx:yy" as sexagesimal (base 60) for this reason it is recommended to define your port mappings as strings.

(No more installing Postgres on your laptop!)

Then type fig up, and Fig will start and run your entire app:

example fig run

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

Fig is a project from Orchard, a Docker hosting service. Follow us on Twitter to keep up to date with Fig and other Docker news.

Installation and documentation

Full documentation is available on Fig's website.

Running the test suite

$ script/test

Building OS X binaries

$ script/build-osx

Note that this only works on Mountain Lion, not Mavericks, due to a bug in PyInstaller.