
discourse/rubyDiscourse Ruby镜像是由Discourse团队维护的Ruby运行环境镜像,旨在提供稳定、优化的Ruby执行环境,支持多种Ruby版本及应用场景。该镜像基于官方Ruby基础镜像构建,针对性能、兼容性及开发效率进行了优化,特别适用于Discourse项目及各类Ruby应用的开发与部署。
2.7、3.0、3.2等),满足不同应用对Ruby版本的需求bashdocker run -it --rm discourse/ruby:latest irb
将本地脚本挂载至容器并执行:
bashdocker run --rm -v $(pwd):/app -w /app discourse/ruby:3.2 ruby script.rb
通过镜像标签指定具体Ruby版本(例如3.2):
bashdocker run --rm discourse/ruby:3.2 ruby -v # 输出 Ruby 3.2.x
创建docker-compose.yml文件,用于部署Ruby应用:
yamlversion: '3.8' services: ruby-app: image: discourse/ruby:3.2 volumes: - ./app:/app # 挂载本地应用代码 - bundle_data:/usr/local/bundle # 持久化Bundler依赖 working_dir: /app command: bundle exec rails server -b 0.0.0.0 ports: - "3000:3000" environment: - RAILS_ENV=production - DATABASE_URL=postgres://user:password@db:5432/app_db volumes: bundle_data: # 用于缓存Ruby依赖,加速后续启动
| 环境变量 | 描述 | 默认值 |
|---|---|---|
RUBY_VERSION | Ruby版本(部分镜像支持动态指定) | 镜像标签对应的版本 |
BUNDLE_PATH | Bundler依赖安装路径 | /usr/local/bundle |
BUNDLE_WITHOUT | 排除的Bundler组(如development) | development:test |
RAILS_ENV | Rails应用环境 | production |
在容器启动时覆盖Bundler配置:
bashdocker run --rm -e BUNDLE_WITHOUT="" discourse/ruby:latest bundle install
yaml# docker-compose.yml version: '3' services: app: image: discourse/ruby:3.2 depends_on: - db environment: - DATABASE_URL=postgres://postgres:postgres@db:5432/myapp db: image: postgres:14 environment: - POSTGRES_PASSWORD=postgres
discourse/ruby:<ruby-version>(如3.2),建议生产环境使用具体版本标签而非latest,避免版本变更风险bundle_data卷可缓存Bundler依赖,大幅减少重复安装时间Dockerfile基于此镜像构建自定义镜像,例如:
dockerfileFROM discourse/ruby:3.2 RUN apt-get update && apt-get install -y some-package

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务