部署 是否可以利用 Docker + Ruby 让 Ruby 在 Windows 环境中,通畅地应用

doosolar · 2018年02月15日 · 最后由 doosolar 回复于 2018年02月23日 · 4782 次阅读

最近看了一些 Docker 的文章,并按照 docs.docker.com 敲了敲学习代码,愈加觉得:

利用 Docker 可以把 Ruby On Rails 应用做成 Docker 的 Image,要是这样的话,是否就可以在 Windows 系统中,方便地使用:Ruby On Rails 的应用了?

如果是这样,那么对 Ruby 手艺人而言,适用的领域又扩大啦。😀

不过,接触 Docker 的时间很晚(也就是几天前)、最近也不用 Windows 系统进行开发,所以挺想知道:社区中,是否已有朋友:披荆斩棘,走完了这样的尝试?

或许,这就是:将您的 Ruby 应用编译成单个可执行文件 停止开发的原因?毕竟 单个可执行文件 和 Docker 想解决的问题,非常接近。

RubyMine 好像推荐用户在 Windows Rails 用的是 Vagrant

aristotll 回复

祝:新春快乐,健康幸福!

谢谢提供的建议。当前的想法是:Windows 系统中,不打算开发,就是想找一个快速部署的办法。

部署 Windows 太花时间了,反正我是不想折腾。

做开发,也就算了,毕竟需要交互环境。不做开发,有用 Windows 部署的理由吗?

客户有 windows 系统的服务器,要是通过 docker 等快速部署 ruby 的大型应用就更好啦。

Rei 回复

谢谢提供参考 🍻 ,并祝:新春快乐,健康幸福!

搜索下来,基本确定:在 2017 年中,windows 10 的 hyper-v 变得强大,让 windows 10 拥有了如下的能力:

  • 可以运行 linux container
  • 而且可以同时运行 linux container 和 windows container

相关参考:

doosolar 回复

让客户买新机器或者换系统。

8 楼 已删除

Docker / Vagrant 完全没问题,现在就在用,不过我更喜欢用 Vagrant,因为我主要在 macOS 上做开发。Windows 的话我也会用 Vagrant。

反正体验比较流畅,Windows 字体渲染也挺细腻的,有它特有的风味,share 一个文件夹作为 workspace 即可。

如果作为部署环境的话,Windows Server + IIS + Vagrant / Docker 也行。

Docker 在 Linux 作为云部署比较好,很多只要支持 Docker 镜像的主机平台都可以 docker image 直接搬。

我开发一般采用双平台:

  • Windows

    • Ruby Installer - Windows Application
    • Vagrant + rvm + Debian - Main
  • Linux

    • rvm - Main
    • Vagrant / Docker + rvm + Debian - Testing / Production
  • macOS

    • rvm - Main
    • Vagrant + rvm + Debian - Testing / Production

在 Windows 下面,除了兴趣的 Win64 程序(包括桌面端、控制台)会用 Ruby Installer 之外,其它所有开发都用 Vagrant,作为主要开发环境。

在 Linux 下,rvm 就够了,Vagrant / Docker 作为测试和生产环境。

在 macOS 环境和 Linux 情况基本一致。

我不是来比较 Vagrant 和 Docker 的,不引战。

jakit 回复

谢谢 @jakit :) ,还有 @aristotll 的留言,让我知道了 Vagrant,多了一条在 windows 系统中的可行之路。

曾经在 win10+vagrant 环境下开发过一阵子,但是这一套用来开发还行,用到生产环境还是有些麻烦。我想知道,现在在 win 服务器环境下部署正式生产是否可行?Docker 在 Windows server 中能稳定运行吗?还有在 Docker 中部署 Rails 能否稳定,部署效率如何?哪位大神能解答一下😂

依赖 docker 还不如依赖 jvm,用 jruby

Win 10 上直接 WSL 啊... 下个月的 RS4 支持后台进程和部分 Unix sockets 支持,接近原生 Linux 体验还省电。

rc_plan 回复

docker 跑了 Rails 很流行了,著名的 Rails 应用都建议这么布署,并且提供配置

nouse 回复

jRuby 早有耳闻,但没有试过,对于已有的 ruby on rails 应用,是否要改不少东西?比如:要用 tomcat 等服务器了?

jasl 回复

谢谢对 WSL 的提醒,先前听说这个话题的时候,都不知道去哪里找 WSL;

今天看了你的回复,去找到一篇:Rails On Windows 10 via WSL 今后 WSL(Windows Subsystem for Linux)值得关注;

年后,打算先试试 Rails in docker in windows。

doosolar 回复

直接用 WSL 就行了,那玩意等价于一个原生 Ubuntu

jasl 回复

我同时试试 WSL 😄

直接用 Linux 吧,虚拟没有原生的快。

Docker for Windows 坑挺多的,如果你项目里如果有 node_modules 目录就更是天坑了

docker for win 还有些目前无解的问题,比如官方维护的 pg 镜像映射 data 到宿主机的目录(NTFS)会报错无法启动,跟文件系统的映射有关

WSL 的 IO 似乎还不如虚拟机

jasl 回复

wsl 并不好用。。。

qiukun 回复

赞同

aldrich 回复

说说看?

jasl 回复

举两个个人使用体验:IO 慢,丑陋的终端和字体。。。

jasl 回复

只能说目前勉强能用

jasl 回复

真不如在系统盘 SSD 里装个虚拟机,然后搞个共享文件夹来的方便。

aldrich 回复

开发 io 慢点还能接受吧,终端目前无解,没看到市面上有能追上 iterm2 的,不过终端的问题也是 docker vagrant wsl 共同问题了

jasl 回复

xshell 还可以

谢谢热心的回复。我把问题再 Focus 一下:windows 系统中,不开发,只部署,看看有没有好的方法。

我们已经开始尝试:WSL 和 Docker in Windows 了,两者安装都比较顺利。同时发现:WSL 可能不是面向部署的,因为:换一台机器,还要重新安装各种包(也不知道其中的坑,是否和原生的 Linux 一样)。所以,后面将集中在 Docker in Windows 的尝试了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号