此镜像已正式弃用,推荐使用https://hub.docker.com/_/ruby/%E6%9B%BF%E4%BB%A3%EF%BC%8C2016%E5%B9%B412%E6%9C%8831%E6%97%A5%E5%90%8E%E5%B0%86%E4%B8%8D%E5%86%8D%E6%8E%A5%E6%94%B6%E4%BB%BB%E4%BD%95%E6%9B%B4%E6%96%B0%E3%80%82%E8%AF%B7%E7%9B%B8%E5%BA%94%E8%B0%83%E6%95%B4%E6%82%A8%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E5%BC%8F%E3%80%82
对于此镜像的大多数使用场景,Rails实际上并非从此镜像获取,而是从项目的Gemfile中获取。因此,此镜像唯一的"价值"在于预安装了nodejs、mysql-client、postgresql-client和sqlite3,以支持Rails框架的各种使用场景。
例如,以下Dockerfile可作为使用PostgreSQL的Rails项目的良好起点:
dockerfileFROM 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链接获取帮助:
Docker社区论坛、Docker社区Slack 或 Stack Overflow
提交issue:
https://github.com/docker-library/rails/issues
维护者:
https://github.com/docker-library/rails
已发布镜像详情:
https://github.com/docker-library/repo-info/blob/master/repos/rails (https://github.com/docker-library/repo-info/commits/master/repos/rails)
(镜像元数据、传输大小等)
镜像更新:
https://github.com/docker-library/official-images/pulls?q=label%3Alibrary%2Frails
https://github.com/docker-library/official-images/blob/master/library/rails (https://github.com/docker-library/official-images/commits/master/library/rails)
本描述的来源:
https://github.com/docker-library/docs/tree/master/rails (https://github.com/docker-library/docs/commits/master/rails)
支持的Docker版本:
https://github.com/docker/docker/releases/latest (尽最大努力支持低至1.6版本)
Ruby on Rails(简称Rails)是一个开源Web应用框架,运行于Ruby编程语言之上。它是一个全栈框架,意味着"开箱即用"的Rails可以创建从Web服务器收集信息、与数据库交互或查询数据库、以及渲染模板的页面和应用。因此,Rails具有独立于Web服务器的路由系统。
***.org/wiki/Ruby_on_Rails
!https://raw.githubusercontent.com/docker-library/docs/01c***b2fe592c1f93a13b4e289ada0e3a1/rails/logo.png
DockerfiledockerfileFROM rails:onbuild
将此文件放在应用的根目录下,与Gemfile同级。
此镜像包含多个ONBUILD触发器,可覆盖大多数应用场景。构建过程会执行COPY . /usr/src/app、RUN bundle install、EXPOSE 3000,并将默认命令设置为rails server。
然后可以构建并运行Docker镜像:
console$ docker build -t my-rails-app . $ docker run --name some-rails-app -d my-rails-app
可通过访问http://container-ip:3000测试,若需从主机外部访问,可映射到8080端口:
console$ docker run --name some-rails-app -p 8080:3000 -d my-rails-app
然后在浏览器中访问http://localhost:8080或http://host-ip:8080。
Gemfile.lockonbuild标签需要应用目录中存在Gemfile.lock。以下docker run命令可帮助生成该文件。在应用根目录(与Gemfile同级)中运行:
console$ docker run --rm -v "$PWD":/usr/src/app -w /usr/src/app ruby:2.1 bundle install
若要生成新Rails项目的脚手架,可执行以下命令:
console$ 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触发器的执行时机(另见https://github.com/docker/docker/issues/5714%E3%80%81https://github.com/docker/docker/issues/8240%E3%80%81https://github.com/docker/docker/issues/***%EF%BC%89%E3%80%82
一旦熟悉项目在Docker中的运行方式,建议调整Dockerfile以继承非onbuild变体,并将onbuild变体Dockerfile中的命令(将ONBUILD行移至末尾并删除ONBUILD关键字)复制到自己的文件中,以便更好地控制这些步骤,并使Dockerfile的功能对自己和他人更透明。这也便于随着时间推移添加额外需求(例如在执行先前的ONBUILD步骤之前安装更多软件包)。
查看此镜像中包含的软件的https://github.com/rails/rails#license%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务