Docker - 使用 Fig 构建Docker环境

注:Fig 已被官方 Docker Compose 替代

应用Docker技术,团队之间通过共享Image或者Dockefile来复用开发环境。为了简化写Dockerfile的方式 ,Fig提供更加精简的DSL定义文件fig.yml,可以让新成员快速搭建开发环境并将精力投入到开发过程中去,而不是研究如何正确安装并配置诸如PostgreSQL之类的数据库。目前,软件开发需要的环境Image,大部分都可以在Docker Hub中搜索到,需要使用时直接下载就可以使用。

Install on Mac OSX

1
2
3
4
5
6
7
8
9
10
11
12
13
$ brew install fig
# ==> Pouring fig-1.0.1.yosemite.bottle.tar.gz
# ==> Caveats
# Python modules have been installed and Homebrew's site-packages is not
# in your Python sys.path, so you will not be able to import the modules
# this formula installed. If you plan to develop with these modules,
# please run:
# mkdir -p /Users/lanvige/Library/Python/2.7/lib/python/site-packages
# echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/lanvige/Library/Python/2.7/lib/python/site-packages/homebrew.pth
$ fig --version ✘
# fig 1.0.1

配置 Rails 开发环境

新建一个项目目录,添加 Dockerfile 文件。

Dockerfile
1
2
3
4
5
6
7
FROM ruby
RUN apt-get update -qq && apt-get install -y build-essential libpq-dev
RUN mkdir /myapp
WORKDIR /myapp
ADD Gemfile /myapp/Gemfile
RUN bundle install
ADD . /myapp

添加fig.yml配置文件,用作环境初始化:

fig.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
db:
image: postgres
ports:
- "5432"
web:
build: .
command: bundle exec rackup -p 3000
volumes:
- .:/myapp
ports:
- "3000:3000"
links:
- db

构建

1
$ fig build

Fig 会根据配置 生成可用的Image,分别是web, db。

运行

1
$ fig up

打开浏览器,http://localhost:3000/

REF::