
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像是基于 Ruby on Rails 框架构建的后端应用运行环境,旨在提供标准化、可移植的 Rails 后端服务部署方案。镜像内置 Ruby 运行时、Rails 核心依赖及常用工具链,支持快速启动 Rails 应用后端,适用于各类 Web 应用、API 服务及微服务架构场景。
| 场景类型 | 适用说明 |
|---|---|
| 企业级 Web 应用后端 | 支撑高并发、多用户的业务系统(如电商平台、CMS 系统) |
| RESTful API 服务 | 提供标准化接口服务(如移动应用后端、第三方系统集成) |
| 微服务架构节点 | 作为微服务集群中的独立后端服务(如用户服务、订单服务) |
| 快速原型开发 | 简化环境配置,加速 MVP 验证(配合 Rails 脚手架快速生成基础业务逻辑) |
| CI/CD 流程集成 | 作为测试/生产环境容器,确保环境一致性(兼容 GitHub Actions、Jenkins 等) |
公共镜像(Docker Hub)
bashdocker pull rails/backend:latest # 最新稳定版 docker pull rails/backend:7.0 # 指定 Rails 7.0 版本
私有仓库
bashdocker pull [私有仓库地址]/rails-backend:prod # 生产环境镜像
最简启动(开发环境)
bashdocker run -p 3000:3000 rails/backend:latest
带环境变量的生产环境启动
bashdocker 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
生产环境配置(含数据库和 Redis)
yaml# 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:
启动服务:
bashdocker-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(非持久化,提高性能) |
示例:绑定宿主机目录
bashdocker run -d \ -v /opt/rails/uploads:/app/public/uploads \ -v /opt/rails/logs:/app/log \ --tmpfs /app/tmp \ rails/backend:latest
通过环境变量注入配置
bash# 覆盖 database.yml 中的数据库配置 docker run -e DB_HOST=custom-db -e DB_USER=admin -e DB_PASS=secret rails/backend:latest
通过外部配置文件挂载
bash# 挂载自定义 database.yml docker run -v $(pwd)/config/database.yml:/app/config/database.yml rails/backend:latest
若需将业务代码集成到镜像中,可基于基础镜像构建自定义镜像:
dockerfile# 基础镜像 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"]
bashdocker build -t my-rails-app:1.0 . docker run -p 3000:3000 my-rails-app:1.0
bash# 进入容器执行迁移 docker exec -it rails-backend bundle exec rails db:migrate # 或通过 docker-compose docker-compose exec backend bundle exec rails db:migrate
bashdocker 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 注入),并配置定期轮换机制。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



来自真实用户的反馈,见证轩辕镜像的优质服务