Rails的docker开发环境(mac-10.13.4,ruby-2.5.1,rails-5.2.0,postgresql-9.5.3,docker for mac-18.03.1-ce-mac6)

一、安装Docker

1.    mac下,可以直接安装Docker for mac:https://www.docker.com/

2.    在docker中添加国内源(否则pull image会很慢):

https://docker.mirrors.ustc.edu.cn

https://hub-mirror.c.163.com


二、利用rails image生成项目文件:

1.    在终端中,进入用于存放项目文件的目录(这里选~/yyyltech/railsweb),输入下面的命令:

docker run -it --rm --user "$(id -u)":"$(id -g)" -v "$PWD":/usr/src/app -w /usr/src/app \
bitnami/rails:5.2.0 rails new --skip-bundle --database postgresql yyylapp
命令相关参数解析:
-it 选项让Docker分配一个伪终端(可选的参数为-d,该参数要求Docker在后台运行容器)
--rm 参数表示清除,意味着只要你退出容器,Docker就会删除容器。如果不指定这个参数,容器会以停止状态一直存在磁盘上,你能从停止状态重新运行它。
--user "$(id -u)":"$(id -g)" 用于必须的权限
-v "$PWD":/usr/src/app选项创建了一个卷挂载点,将当前宿主机的工作目录($PWD)映射为容器内的/usr/src/app。
-w /usr/src/myapp选项设定了目前正在运行的命令的工作目录。本例中,工作目录改成了挂载点。
\ 用于跨行的命令
bitnami/rails:5.2.0 是dockerhub上面的一个rails的镜像,可以换成其他
rails new --skip-bundle --database postgresql yyylapp 不运行bundle,并且把默认数据库改成pg,yyylapp为项目名称

2.    进入项目,修改Gemfile里面的ruby源为

source 'https://ruby.taobao.org'

3.    用docker运行bundle install

cd yyylapp
docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby2.5 bundle install

检查项目下面是否生成了Gemfile.lock,有的话表示成功了。

三、rails开发环境docker容器化

我们采用Passenger+Nginx架构,使用的dockerhub容器为:phusion/passenger-ruby25

以下操作均在项目文件夹下面(~/yyyltech/railsweb/yyylapp)

下面,将利用docker-compose编排4个容器服务:

(1)Setup Container——yyylapp_setup:用于执行db:migrate等初始化命令,它监听postgres容器服务是否可用,当可用时执行初始化命令

(2)Web Application Container——yyylapp:rails app容器

(3)Database Container——postgres:pg数据库容器

(4)Database Data-only Container——postgres-data:用于持有pg数据库容器的数据,以防pg数据库容器出问题,我们还可以持有数据

1.    新建Nginx Virtual Host文件——yyylapp.conf(yyylapp为项目名称)

touch yyylapp.conf

文件内容:

server {
    listen 80;
    server_name _;
    root /home/app/yyylapp/public;
    passenger_enabled on;
    passenger_user app;
    passenger_ruby /usr/bin/ruby2.5;
}

2.    新建environmental variables环境变量文件——rails-env.conf,后面会用到

touch rails-env.conf<
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值