Skip to content

快速参考

  • 由……维护
    Docker 社区

  • 何处获取帮助:
    Docker 社区 Slack、服务器故障、Unix & Linux 或 Stack Overflow

支持的标签及相应的 Dockerfile 链接

快速参考(续)

什么是 JRuby?

JRuby(http://www.jruby.org)是 Ruby(http://www.ruby-lang.org)在 JVM 上的一种实现。

Ruby 是一种动态的、反射的、面向对象的、通用的、开源的编程语言。据其作者称,Ruby 受到了 Perl、Smalltalk、Eiffel、Ada 和 Lisp 的影响。它支持多种编程范式,包括函数式、面向对象和命令式。它还具有动态类型系统和自动内存管理。

wikipedia.org/wiki/Ruby(编程语言)

JRuby 利用 JVM 的健壮性和速度,同时提供你已经熟知和喜爱的相同的 Ruby。使用 JRuby,你能够利用真正的本地线程、增强的垃圾回收,甚至导入和使用 Java 库。

logo

如何使用此图像

在你的 Ruby 应用项目中创建一个 Dockerfile

FROM jruby:9

# throw errors if Gemfile has been modified since Gemfile.lock
RUN bundle config --global frozen 1

WORKDIR /usr/src/app

COPY Gemfile Gemfile.lock ./
RUN bundle install

COPY . .

CMD ["./your-daemon-or-script.rb"]

将此文件放在你的应用程序的根目录中,紧挨着 Gemfile

然后你可以构建并运行 Ruby 镜像:

$ docker build -t my-ruby-app .
$ docker run -it --name my-running-script my-ruby-app

生成一个 Gemfile.lock

上述示例 Dockerfile 期望在你的应用程序目录中有一个 Gemfile.lock 。这个 docker run 将帮助你生成一个。在你的应用程序的根目录下,紧挨着 Gemfile 运行它:

$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app jruby:9 bundle install --system

运行单个 Ruby 脚本

对于许多简单的单文件项目,你可能会发现编写完整的 Dockerfile 很不方便。在这种情况下,你可以直接使用 Ruby Docker 镜像来运行 Ruby 脚本:

$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp jruby:9 jruby your-daemon-or-script.rb

许可证

查看此映像中包含的软件的许可证信息。

与所有 Docker 镜像一样,这些镜像可能还包含其他可能受其他许可证约束的软件(例如来自基础发行版的 Bash 等,以及所包含的主要软件的任何直接或间接依赖项)。

一些能够自动检测到的额外许可证信息可能会在 repo-info 存储库的 jruby/ 目录中找到。

对于任何预构建镜像的使用,镜像用户有责任确保对此镜像的任何使用都符合其中包含的所有软件的任何相关许可证。