

Fig – Fast, isolated development environments using Docker - bcjordan
https://github.com/orchardup/fig

======
bradleyg_
Been using this for a while now for Django development, it's really simplified
the way I work.

When I want to start work on a project:

    
    
        fig up -d db
        fig up -d redis
        fig up web
    

One of the main benefits for me using fig/docker is that I only have a single
VM on my machine, rather than one for each project. I usually just leave it
running in the background.

Combined with docker-osx [https://github.com/noplay/docker-
osx](https://github.com/noplay/docker-osx) I don't even need to ssh into my VM
to start work.

~~~
rjzzleep
boot2docker[1] is now the recommended environment for docker on osx, but sadly
sharing files is not as easy as it is with docker-osx.

They just integrated nfs support though

[1]
[https://github.com/boot2docker/boot2docker](https://github.com/boot2docker/boot2docker)

~~~
m_mueller
Sharing files? With Expandrive you can mount anything you can ssh into. This
has been possible on Linux for a long time, Apple is lagging behind there, but
Expandrive is a solid 3rd party solution.

~~~
jimmcslim
There is also sshfs which builds on top of fuse. This is also available for
Mac OS X via fuseosx, install through homebrew.

~~~
m_mueller
I could never make that work reliably. Could you?

------
cardmagic
Fig is awesome, it lets you create a simple fig.yml that can specify multi-
container apps. I recently built a fig2coreos adapter that takes the fig.yml
as input and outputs the coreos systemd configuration files.

[1]
[https://github.com/centurylinklabs/fig2coreos](https://github.com/centurylinklabs/fig2coreos)

[2] [http://www.centurylinklabs.com/building-complex-apps-for-
doc...](http://www.centurylinklabs.com/building-complex-apps-for-docker-on-
coreos-and-fig/)

------
Kiro
Can someone explain the differences between Fig, Docker and Vagrant? Without
knowing anything about server administration they seem to be doing the same
thing, which is obviously wrong since Fig is built on top of Docker.

~~~
fideloper
Vagrant builds virtual machines for you. Like another computer inside of your
computer.

Docker can run within a VM, or on your computer if you're not on a Macintosh
(Mac's kernel is...for now...not supported). I usually create a Vagrant
virtual machine of CoreOS, which works with Docker very nicely.

Docker is a utility which uses "containers". Docker containers are usually
used to run one process at a time (apache or mysql or python or grep or
anything, really).

You can connect multiple docker containers to create a functioning app.
Running one for database and other one for running your code would a simple
example.

Fig tries to make the process of making Docker instances work together easy.

~~~
loganekz
The OS X kernel will not be supported.

Docker is built upon features available only in the Linux kernel (LXC,
cgroups)

~~~
zachlatta
However, Docker is officially supported on OS X through
[https://github.com/boot2docker/boot2docker](https://github.com/boot2docker/boot2docker)

~~~
jimmcslim
It is officially supported by virtue of boot2docker booting a small Linux
kernel in a VM (VirtualBox).

------
dougws
Seems like this is pretty comparable to Vagrant using the Docker backend.
Anyone have thoughts on pros and cons of each?

------
dergachev
Looks pretty slick. For a recent project, I ended up building a 100 line
Makefile, and fig could have covered about 70% of that. That said, Makefile
are good to have around

------
unvs
I'm really starting to like Docker now.

Is it possible to have multiple independent web apps talking to one postgres
and one redis installation?

I have a VPS with ~10 tiny websites, and it would be total overkill to bundle
each app with its own db and caching. How would you reference that same
"external" db in a fig configuration?

