Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


深入浅出Docker(五):基于Fig搭建开发环境

2014-12-30 10:31    评论: 1 收藏: 2 分享: 2    

3. Rails开发环境配置详解

我们来配置一套最常用的Rails+PostgreSQL项目。

第一步,确保Fig已经正确的安装到主机系统,如果还没有,请参考上一章节的安装指南。

第二步,在项目根目录下存放一个名为 Dockerfile 文件:

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

第三步,创建一个 Gemfile 文件用来定义Rails软件包。 内容如下所示:

source 'https://rubygems.org'
gem 'rails', '4.0.2'

第四步,创建一个fig.yml文件,并使用以下配置文件来做最后的环境初始化。

db:
  image: postgres
  ports:
    - "5432"
web:
  build: .
  command: bundle exec rackup -p 3000
  volumes:
    - .:/myapp
  ports:
    - "3000:3000"
  links:
    - db

第五步,当前你目录下空空如也,使用如下命令可以生成一套Rails项目骨架:

$ fig run web rails new . --force --database=postgresql --skip-bundle

当你跑完以上命令,你就会得到一个崭新的Rails项目。

$ ls
Dockerfile Rakefile config fig.yml public vendor
Gemfile app config.ru lib test
README.rdoc bin db log tmp

编辑一下Gemfile文件,去掉therubyracer包的注释, 让Rails依赖的Javascript的运行时环境。

gem 'therubyracer', platforms: :ruby

所有的文件编辑都做完之后,运行命令创建开发环境image。

$ fig build

运行完build命令后,我们就有了可以立即使用的Image。这两个Image的名字分别是web和db。为了让db能连上web,我们通常还需要修改database.yml来支持数据库连接。

development: &default 
  adapter: postgresql 
  encoding: unicode 
  database: postgres 
  pool: 5 
  username: postgres 
  password: 
  host: db 
test: 
  <<: *default 
  database: myapp_test

好了,让我们运行一下:

$ fig up

命令行将显示如下日志:

Recreating figtest_db_1...
Creating figtest_web_1...
Attaching to figtest_db_1, figtest_web_1
db_1  | LOG:  database system was shut down at 2014-10-01 23:53:11 UTC
db_1  | LOG:  autovacuum launcher started
db_1  | LOG:  database system is ready to accept connections
web_1 | [2014-10-01 23:53:16] INFO  WEBrick 1.3.1
web_1 | [2014-10-01 23:53:16] INFO  ruby 2.1.2 (2014-05-08) [x86_64-linux]
web_1 | [2014-10-01 23:53:16] INFO  WEBrick::HTTPServer#start: pid=1 port=3000
db_1  | FATAL:  database "myapp_development" does not exist
db_1  | FATAL:  database "myapp_development" does not exist
web_1 | 192.168.59.3 - - [01/Oct/2014 23:53:40] "GET / HTTP/1.1" 500 13476 0.5112
web_1 | 192.168.59.3 - - [01/Oct/2014 23:53:40] "GET %2Ffavicon.ico HTTP/1.1" 200 - 0.0067

通过以上日志可以知道开发数据库还没有创建。这时我们可以开启另外一个terminal,创建开发数据库:

$ fig run web rake db:create

当以上所有步骤都成功运行后,就需要来验证开发环境的正确性了。通过访问http://localhost:3000/ 我们应该可以看到熟悉的Rails欢迎页面:

查看其它分页:

发表评论


返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。