本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

本镜像是基于 Ruby on Rails 框架构建的后端应用运行环境,旨在提供标准化、可移植的 Rails 后端服务部署方案。镜像内置 Ruby 运行时、Rails 核心依赖及常用工具链,支持快速启动 Rails 应用后端,适用于各类 Web 应用、API 服务及微服务架构场景。
| 场景类型 | 适用说明 |
|---|---|
| 企业级 Web 应用后端 | 支撑高并发、多用户的业务系统(如电商平台、CMS 系统) |
| RESTful API 服务 | 提供标准化接口服务(如移动应用后端、第三方系统集成) |
| 微服务架构节点 | 作为微服务集群中的独立后端服务(如用户服务、订单服务) |
| 快速原型开发 | 简化环境配置,加速 MVP 验证(配合 Rails 脚手架快速生成基础业务逻辑) |
| CI/CD 流程集成 | 作为测试/生产环境容器,确保环境一致性(兼容 GitHub Actions、Jenkins 等) |
docker pull rails/backend:latest # 最新稳定版 docker pull rails/backend:7.0 # 指定 Rails 7.0 版本
docker pull [私有仓库地址]/rails-backend:prod # 生产环境镜像
docker run -p 3000:3000 rails/backend:latest
docker run -d \ -p 80:3000 \ -e RAILS_ENV=production \ -e SECRET_KEY_BASE=$(openssl rand -hex 64) \ -e DATABASE_URL=postgres://user:pass@db-host:5432/app_db \ -e RAILS_LOG_TO_STDOUT=true \ --name rails-backend \ rails/backend:latest
# docker-compose.yml version: '3.8' services: backend: image: rails/backend:7.0 restart: always ports: - "80:3000" environment: RAILS_ENV: production SECRET_KEY_BASE: "your-64-byte-secret-key" # 建议通过环境变量注入 DATABASE_URL: "postgres://postgres:postgres@db:5432/app_prod" REDIS_URL: "redis://redis:6379/0" RAILS_MAX_THREADS: 5 PUMA_WORKERS: 2 depends_on: - db - redis volumes: - rails_uploads:/app/public/uploads # 持久化用户上传文件 - rails_logs:/app/log # 日志持久化 db: image: postgres:14 volumes: - postgres_data:/var/lib/postgresql/data environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: app_prod redis: image: redis:7-alpine volumes: - redis_data:/data volumes: postgres_data: redis_data: rails_uploads: rails_logs:
启动服务:
docker-compose up -d # 后台启动所有服务 docker-compose logs -f # 查看实时日志
| 变量名 | 必须性 | 说明 | 示例值 |
|---|---|---|---|
| RAILS_ENV | 否 | Rails 运行环境(development/test/production),默认 development | production |
| SECRET_KEY_BASE | 生产必选 | Rails 加密密钥(生产环境必须设置,长度 ≥ 32 字节) | 5f4dcc3b5aa765d61d8327deb882cf99... |
| DATABASE_URL | 是 | 数据库连接 URL(支持 PostgreSQL/MySQL/SQLite) | postgres://user:pass@db:5432/app |
| PORT | 否 | 服务监听端口,默认 3000 | 8080 |
| RAILS_MAX_THREADS | 否 | Puma 线程数,默认 5(生产环境建议 10-20) | 15 |
| PUMA_WORKERS | 否 | Puma 工作进程数,默认 2(生产环境建议 = CPU 核心数) | 4 |
| RAILS_LOG_TO_STDOUT | 否 | 是否将日志输出到标准输出(容器化推荐开启),默认 false | true |
| REDIS_URL | 否 | Redis 连接 URL(用于缓存、Action Cable 等) | redis://redis:6379/1 |
| ASSET_HOST | 否 | 静态资源 CDN 域名(生产环境建议配置) | [***] |
| 目录路径 | 用途 | 建议挂载方式 |
|---|---|---|
| /app/public/uploads | 用户上传文件 | named volume 或 bind mount |
| /app/log | 应用日志 | named volume |
| /app/tmp | 临时文件(如缓存) | tmpfs(非持久化,提高性能) |
docker run -d \ -v /opt/rails/uploads:/app/public/uploads \ -v /opt/rails/logs:/app/log \ --tmpfs /app/tmp \ rails/backend:latest
# 覆盖 database.yml 中的数据库配置 docker run -e DB_HOST=custom-db -e DB_USER=admin -e DB_PASS=secret rails/backend:latest
# 挂载自定义 database.yml docker run -v $(pwd)/config/database.yml:/app/config/database.yml rails/backend:latest
若需将业务代码集成到镜像中,可基于基础镜像构建自定义镜像:
# 基础镜像 FROM rails/backend:7.0 AS builder # 设置工作目录 WORKDIR /app # 复制 Gemfile 及依赖文件 COPY Gemfile Gemfile.lock ./ RUN bundle install --without development test # 复制应用代码 COPY . . # 预编译资产(生产环境) RUN RAILS_ENV=production bundle exec rails assets:precompile # 生产环境镜像(多阶段构建减小体积) FROM rails/backend:7.0 WORKDIR /app # 从 builder 阶段复制依赖和编译产物 COPY --from=builder /usr/local/bundle /usr/local/bundle COPY --from=builder /app/public/assets /app/public/assets COPY --from=builder /app/public/packs /app/public/packs COPY . . # 启动命令 CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]
docker build -t my-rails-app:1.0 . docker run -p 3000:3000 my-rails-app:1.0
# 进入容器执行迁移 docker exec -it rails-backend bundle exec rails db:migrate # 或通过 docker-compose docker-compose exec backend bundle exec rails db:migrate
docker logs -f rails-backend # 实时查看日志 docker exec -it rails-backend tail -f log/production.log # 查看具体日志文件
PUMA_WORKERS(进程数)和 RAILS_MAX_THREADS(线程数)调整并发能力,建议 WORKERS = CPU核心数 * 0.5 ~ 1database.yml 中设置 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>,确保与 Puma 线程数匹配REDIS_URL),减少数据库查询压力注:生产环境部署需确保 SECRET_KEY_BASE 安全存储(建议通过密钥管理服务如 Vault 注入),并配置定期轮换机制。
免费版仅支持 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