2020年,“非著名Web框架”–Ruby on Rails已经15岁了。在今年,Rails 6.0趋于完善,除了拿掉讨厌的Jquery,Webpacker 也成为默认前端打包方案,Sprockets 开始软着陆,未来很可能会和Jquery一样被彻底废弃,这就是历史的进程。

由于历史原因,本身就由Ruby撰写的HomeBrew在Mac os系统上大行其道,所以大部分Rails程序员的主力电脑都是Mac book pro,而使用Windows系统的用户就没那么好运了,比如Rails 6.0开始启用Webpacker,这就需要用户安装yarn,由此带来一系列的连锁反应,还有令人绝望的Win10系统下的CoffeeScript问题,这也是Rails包括Jekyll时常令人诟病因素之一:搭个环境都这么费劲,我为啥不用Django、Laravel亦或者是Springboot呢?为什么非得受这份罪呢?因为…热爱,本次我们使用Docker来简化Rails环境的搭建,让它能够在各个操作系统下做到无缝开发。

当然了,第一步还是安装Docker,没有安装的朋友请参照:win10系统下把玩折腾DockerToolBox以及更换国内镜像源(各种神坑)。

然后在电脑内建立一个rails项目的目录

mkdir myr
cd myr

第三步,拉取基础镜像,该镜像内置了ruby2.5.1和node11为我们安装Rails6.0打好基础

docker pull starefossen/ruby-node

拉取镜像成功后,启动容器并且进入命令行,记住用挂载命令把当前目录共享到Docker容器内部,不会设置共享文件夹的同学可以参照这篇文章:上穷碧落下凡尘:Win10系统下基于Docker配置Elasticsearch7配合Python3进行全文检索交互

docker run --rm -v /myr:/usr/src -w /usr/src -ti starefossen/ruby-node /bin/bash

由于在容器内部已经安装好ruby2.5.1,所以gem也随之安装好,那么我们可以在容易内部安装Rails

gem install -v 6.0.2 rails

这里用-v参数可控制版本号。

在容器内安装Rails6.0成功之后,直接在容器内建立项目

rails new .

项目建立好以后,你会发现在windows目录会同步出现Rails项目文件

此时,在容器命令行内输入exit退出容器,此时容器就会停止并且删除,这个容器也完成了它的历史任务,它的存在就是帮我们创建好一个Rails项目,并且通过共享文件的形式在宿主机同步。

下一步,为了能在宿主机运行我们的Rails服务,需要一个Dockerfile文件来定制我们自己的镜像

FROM starefossen/ruby-node  # 设置项目目录
WORKDIR /usr/src/app  # 设置配置文件
COPY Gemfile* ./
RUN bundle install  # 拷贝文件
COPY . ./  # 暴露端口
EXPOSE 3000  # 启动服务命令
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]

写好Dockerfile之后,我们就可以打造一个全新的镜像,这个镜像用来运行我们已经建立好的Rails项目。

docker build -t myr .

打包成功后,输入命令查看镜像

docker images

此时,启动容器

docker run -p 3000:3000 -v /myr:/usr/src/app/ myr

访问一下 http://localhost:3000

熟悉的“世界人民大团结”欢迎页面已经映入眼帘,就是这么的简单,有人说了,Python才是如今的“当红炸子鸡”,现在学习Rails会不会是“四九年入国军”?我想说的是,时至今年,全球依然有超过一亿的网站和后台服务由Rails驱动,其中不乏国际知名企业,如:Airbnb、Basecamp、Github等,尽管Php和Python的使用范围比Ruby更广,但其最受欢迎的两个框架Laravel和Django分别比Rails的代码贡献者要少很多。更多的开源代码贡献者意味着Gem的质量非常之好,俗话说,Gem为Rails倾尽了所有,而Rails经常被人们盛赞,也是因为支持它的社区正在努力创建非常多可重用的库。

我们可以看看在github上的开源代码贡献者的数量对比:

GitHub contributors to Ruby frameworks:

Rails: 4260
Padrino: 228
Hanami: 146
Sinatra: 387

GitHub contributors to Django (Python) and Laravel (PHP):

Django: 2,007
Laravel: 740

差距可见一斑,归根结底,一款框架的开发和使用还是得以“人”为本。一如既往,专注web,专注产品的Rails6.0在新的时代里一定会继往开来、再创辉煌。

基于Docker在Win10平台搭建Ruby on Rails 6.0框架开发环境相关推荐

  1. Muse-UI +Vue2.0框架开发环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> 一.安装Vue,创建Vue项目 VSCode 搭建Vue开发环境之Vue CLI 二.安装Muse-UI 库 npm inst ...

  2. 基于OpenStack的云计算平台搭建

    文章目录 1.硬件需求(所有节点) 1.1.配置需求 1.2.IP&主机&配置 2.安装基础环境&服务(控制节点) 2.1.安装 NTP 时间同步服务 - - 目录 基于Ope ...

  3. 基于 Win10 平台 搭建 Elasticsearch 集群

    基于 Win10 平台搭建 Elasticsearch 集群 1. 基本概念 1.1 单机和集群 1.2 节点 2. 部署集群 3. 启动集群 4. 测试集群 1. 基本概念 1.1 单机和集群 ✨单 ...

  4. 基于Docker的拓扑网络搭建可行性探究

    基于Docker的拓扑网络搭建可行性探究 文章目录 基于Docker的拓扑网络搭建可行性探究 引入 Docker环境配置与容器选择 Image 命令 (镜像相关) Container命令(容器相关) ...

  5. 基于认证的代理平台搭建配置squid-20130730

    基于认证的代理平台搭建配置squid-20130730 功能:通过squid代理实现 (1)基于用户名密码认证的出口ip路由选择 (2)基于client源ip的出口ip路由选择 (3)基于连接本机ip ...

  6. 【MySQL】基于Docker的Mysql主从复制搭建

    基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...

  7. 基于docker在Ubuntu上搭建TensorFlow-GPU计算环境

    这里转载一篇Docker安装TF GPU的版本 基于docker在Ubuntu上搭建TensorFlow-GPU计算环境 由于实验室的服务器有多人共享使用,而不同人的代码对应的keras和tensor ...

  8. Re.从零开始--基于UbuntuServer 20.04-OpenStack平台搭建_

    基于UbuntuServer 20.04-OpenStack平台搭建_ 前言: 本文档基于ubuntu-server20.04版本和OpenStack Victoria搭建openstack环境 部署 ...

  9. 基于 Docker Compose 容器化搭建 Wordpress

    基于 Docker Compose 容器化搭建 Wordpress 最近由于业务需求帮公司搞了几个 Wordpress 作为官网,中间也是踩了不少坑,倒不是搭建 wordpress 难,主要是 wor ...

  10. 基于hisilicon的arm平台搭建gdb+gdbserver调试环境

    这段时间搭建了一个基于hisilicon的arm平台搭建gdb+gdbserver调试环境,网上对hisilicon平台的搭建资料不多,基本上是arm-linux-gdb的,而没有arm-uclibc ...

最新文章

  1. 用计算机弹奏lemon乐谱,原神乐谱lemon怎么弹 lemon乐谱弹奏方法教学
  2. iOS WKWebView JS原生交互之JS调用OC(附demo)
  3. [Rails.Test.Prescriptions]系列之一:0基础的Test Rails...
  4. 请求接口获取到的数据其中出现null值,处理的时候导致了程序crash,解决方案如下:...
  5. javascript字符串方法总结
  6. python迅雷_迅雷下载链接解析器。
  7. easymock 图片_数据模拟神器 easy-mock 正式开源
  8. HTML-Label-框架-字符实体-全局属性-CSS基本语法结构
  9. 心离钱越远,钱离口袋越近,心离钱越近,钱离口袋越远
  10. 2018-2019-1 20165309 《信息安全系统设计基础》第一周学习总结
  11. C语言基础教程之强制类型转换
  12. 远程连接到 SQL Server 2005 时的问题汇集!!
  13. LynxFly科研小四轴横空出世,开源,F4,WIFI
  14. 欧美优秀博客集锦 注:(私人收藏而已)
  15. 如果使用git克隆远程创库,pull提示Can‘t update master has no tracked branch
  16. 化合物修饰壳聚糖水凝胶:丙烯酸接枝/聚乙烯醇/温敏淫羊藿苷/醛-亚胺-壳聚糖水凝胶的制备
  17. 使用Python turtle快速实现七夕情人节礼物
  18. dYdX会是DeFi下一轮爆发的引擎吗?
  19. enum weekday
  20. 好用的redis桌面工具

热门文章

  1. 2020轻量级目标检测网络(开源)总结
  2. WTV380语音芯片在电动牙刷的运用,可节省80%的MCU资源
  3. c计算机房,今天才发现c语言机房的电脑居然可以上网
  4. python爬虫系列(1):使用python3和正则表达式获取猫眼电影排行榜数据
  5. npmjs 修改登录密码 邮箱跳转404?
  6. Docker(十六)docker-compose实现nginx+tomcat
  7. yolov3在crowndhuman数据集上的效果
  8. [转载]打工辛酸路:我是一朵飘零的花之23
  9. Unity性能优化之Combine(联合)
  10. Warning Unhealthy 3m13s (x3741 over 10h) kubelet (combined from similar events): Readiness pro