【云原生 | 39】Docker快速部署动态脚本语言Ruby

博主简介
        云计算领域优质创作者
        新星计划第三季python赛道第一名
        阿里云ACE认证高级工程师
        阿里云开发者社区专家博主
✒️博主微信:15575411187
交流社区:小鹏linux(个人社区)欢迎您的加入!

目录

1. Ruby简介

2. Ruby的特性 

3. Linux中源码安装Ruby 

4.  Linux中yum安装 Ruby 

5. 在Docker中部署运行ruby 

6. 在Docker中部署运行JRuby 

 结束语


1. Ruby简介

Ruby是一种动态的面向对象的脚本语言,具有支持反射、跨平台、设计精简等特点,在Web应用领域应用颇多。Ruby的设计受到Perl、 Smalltalk、Eiffel、Ada和Lisp的影响。Ruby支持多种编程范式,如函数编程、面向对象编程、CLI交互式编程。Ruby还有动态的数据类型系统和自动的内存管理。

Ruby 的特性与 Smalltalk、Perl 和 Python 类似。Perl、Python 和 Smalltalk 是脚本语言。Smalltalk 是一个真正的面向对象语言。Ruby,与 Smalltalk 一样,是一个完美的面向对象语言。使用 Ruby 的语法比使用 Smalltalk 的语法要容易得多。

2. Ruby的特性 

  • Ruby 是开源的,在 Web 上免费提供,但需要一个许可证。
  • Ruby 是一种通用的、解释的编程语言。
  • Ruby 是一种真正的面向对象编程语言。
  • Ruby 是一种类似于 Python 和 Perl 的服务器端脚本语言。
  • Ruby 可以用来编写通用网关接口(CGI)脚本。
  • Ruby 可以被嵌入到超文本标记语言(HTML)。
  • Ruby 语法简单,这使得新的开发人员能够快速轻松地学习 Ruby。
  • Ruby 与 C++ 和 Perl 等许多编程语言有着类似的语法。
  • Ruby 可扩展性强,用 Ruby 编写的大程序易于维护。
  • Ruby 可用于开发的 Internet 和 Intranet 应用程序。
  • Ruby 可以安装在 Windows 和 POSIX 环境中。
  • Ruby 支持许多 GUI 工具,比如 Tcl/Tk、GTK 和 OpenGL。
  • Ruby 可以很容易地连接到 DB2、MySQL、Oracle 和 Sybase。
  • Ruby 有丰富的内置函数,可以直接在 Ruby 脚本中使用。

3. Linux中源码安装Ruby 

  • 下载最新版的 Ruby 压缩文件。请点击这里下载。
  • 下载 Ruby 之后,解压到新创建的目录下:
$ tar -xvzf ruby-2.2.3.tgz    
$ cd ruby-2.2.3

配置并编译源代码,如下所示:

$ ./configure
$ make
$ sudo make install

安装后,通过在命令行中输入以下命令来确保一切工作正常

$ruby -v
ruby 2.2.3……

4.  Linux中yum安装 Ruby 

如果计算机已经连接到 Internet,那么最简单安装 Ruby 的方式是使用 yum 或 apt-get。在命令提示符中输入以下的命令,即可在您的计算机上安装 Ruby。

$  sudo yum install ruby            # CentOS, Fedora, 或 RHEL 系统
或
sudo apt-get install ruby-full      # Debian 或 Ubuntu 系统

如果你是苹果系统,可以使用 brew 命令安装

$ brew install ruby

5. 在Docker中部署运行ruby 

使用Ruby官方镜像 

首先,在Ruby项目中创建一个Dockerfile:

FROM ruby:2.1.2-onbuild
CMD ["./rb-sample.rb .rb"]

然后,新建rb-sample.rb例子程序:

say = "I love Ruby"
3.times { puts say }

将以上文件放在app的根目录(与Gemfile同级)。

注意:

使用的官方镜像带有onbuild标签,意味着包含了启动大部分Ruby项目所需的基本指令。在构建镜像的时候,Docker会执行COPY./usr/src/app以及RUN bundle install。

然后,构建名为ruby-image的镜像:

$ docker build -t ruby-image .

最后,创建并运行此镜像:

$ docker run -it --name ruby-container ruby-image
由于在构建时使用了带有onbuild标签的镜像,所以在app目录下需要有Gemfile.lock文件。可以在App的根目录运行以下命令:
$ docker run --rm -v "$(pwd)":/usr/src/app -w /usr/src/app ruby:2.1.2 bundle install --system
如果大家只需要运行单个的Ruby脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方Ruby镜像,带参数运行容 器:
$ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp ruby:2.1.2 ruby your-daemon-or-script.rb

6. 在Docker中部署运行JRuby 

JRuby类似于Python的Jython,它可运行于JVM上并支持Java的接口和类。

第一步,用户在JRuby项目中创建一个Dockerfile:

FROM jruby:.1.7.24-onbuild
CMD ["./jruby-sample.rb"]

第二步,新建Ruby示例代码jruby-sample.rb:

say = "I love JRuby"
3.times { puts say }

将此文件放在app的根目录(与Gemfile同级)。

注意:

使用的官方镜像带有onbuild标签,意味着包含了启动大部分JRuby项目所需的基本指令。在构建镜像的时候,会执行COPY./usr/src/app以及 RUN bundle install。

第三步,构建自定义镜像:

$ docker build -t jruby-image .

第四步,创建并运行此镜像:

$ docker run -it --name jruby-container jruby-image
由于在构建时使用了带有onbuild标签的镜像,所以在app目录下需有Gemfile.lock文件。这时可以在app的根目录运行以下命令:
$ docker run --rm -v "$(pwd)":/usr/src/app -w /usr/src/app jruby:1.7.15 bundle install --system
如果大家只需要运行单个的JRuby脚本,那么无需使用Dockerfile构建自定义镜像,而是通过以下命令直接使用官方JRuby镜像,带参数运行容器:
$ docker run -it --rm --name my-running-script -v "$(pwd)":/usr/src/myapp -w /usr/src/myapp jruby:1.7.15 jruby your-daemon-or-script.rb

 结束语

你可能感兴趣的:(云原生,docker,容器)