本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
此镜像已正式弃用,推荐使用标准ruby镜像替代,2016年12月31日后将不再接收任何更新。请相应调整您的使用方式。
对于此镜像的大多数使用场景,Rails实际上并非从此镜像获取,而是从项目的Gemfile中获取。因此,此镜像唯一的"价值"在于预安装了nodejs、mysql-client、postgresql-client和sqlite3,以支持Rails框架的各种使用场景。
例如,以下Dockerfile可作为使用PostgreSQL的Rails项目的良好起点:
FROM ruby:2.3 RUN apt-get update \ && apt-get install -y --no-install-recommends \ postgresql-client \ && rm -rf /var/lib/apt/lists/* WORKDIR /usr/src/app COPY Gemfile* ./ RUN bundle install COPY . . EXPOSE 3000 CMD ["rails", "server", "-b", "0.0.0.0"]
Dockerfile链接5.0.1, 5.0, 5, latest (Dockerfile)onbuild (onbuild/Dockerfile)获取帮助:
Docker社区论坛、Docker社区Slack 或 Stack Overflow
提交issue:
[***]
维护者:
Docker社区
已发布镜像详情:
repo-info仓库的repos/rails/目录 (历史记录)
(镜像元数据、传输大小等)
镜像更新:
带有library/rails标签的official-images PRs
official-images仓库的library/rails文件 (历史记录)
本描述的来源:
docs仓库的rails/目录 (历史记录)
支持的Docker版本:
最新版本 (尽最大努力支持低至1.6版本)
Ruby on Rails(简称Rails)是一个开源Web应用框架,运行于Ruby编程语言之上。它是一个全栈框架,意味着"开箱即用"的Rails可以创建从Web服务器收集信息、与数据库交互或查询数据库、以及渲染模板的页面和应用。因此,Rails具有独立于Web服务器的路由系统。
***.org/wiki/Ruby_on_Rails
!logo
DockerfileFROM rails:onbuild
将此文件放在应用的根目录下,与Gemfile同级。
此镜像包含多个ONBUILD触发器,可覆盖大多数应用场景。构建过程会执行COPY . /usr/src/app、RUN bundle install、EXPOSE 3000,并将默认命令设置为rails server。
然后可以构建并运行Docker镜像:
$ docker build -t my-rails-app . $ docker run --name some-rails-app -d my-rails-app
可通过访问[***]测试,若需从主机外部访问,可映射到8080端口:
$ docker run --name some-rails-app -p 8080:3000 -d my-rails-app
然后在浏览器中访问http://localhost:8080或[***]。
Gemfile.lockonbuild标签需要应用目录中存在Gemfile.lock。以下docker run命令可帮助生成该文件。在应用根目录(与Gemfile同级)中运行:
$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:2.1 bundle install
若要生成新Rails项目的脚手架,可执行以下命令:
$ docker run -it --rm --user "$(id -u):$(id -g)" -v "$PWD":/usr/src/app -w /usr/src/app rails rails new --skip-bundle webapp
这将在当前目录下创建一个名为webapp的子目录。
rails镜像有多种版本,每种版本设计用于特定场景。
rails:<version>这是默认镜像。若不确定需求,建议使用此版本。它既可用作临时容器(挂载源代码并启动容器以运行应用),也可用作构建其他镜像的基础。
rails:onbuild此镜像简化了衍生镜像的构建。对于大多数场景,在项目根目录创建包含FROM rails:onbuild的Dockerfile,即可为项目创建独立镜像。
尽管onbuild变体有助于"快速启动"(短时间内实现Docker化),但不建议在项目中长期使用,因为无法控制ONBUILD触发器的执行时机(另见docker/docker#5714、docker/docker#8240、docker/docker#11917)。
一旦熟悉项目在Docker中的运行方式,建议调整Dockerfile以继承非onbuild变体,并将onbuild变体Dockerfile中的命令(将ONBUILD行移至末尾并删除ONBUILD关键字)复制到自己的文件中,以便更好地控制这些步骤,并使Dockerfile的功能对自己和他人更透明。这也便于随着时间推移添加额外需求(例如在执行先前的ONBUILD步骤之前安装更多软件包)。
查看此镜像中包含的软件的许可证信息。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429