在京东云服务器(JD Cloud)上快速搭建 Ruby on Rails 环境,推荐使用 Docker 或 脚本自动化部署。以下是两种高效方案:
✅ 方案一:使用 Docker 快速部署(推荐,10 分钟搞定)
适合希望环境隔离、可复现的场景。
步骤:
-
登录京东云 ECS,安装 Docker 和 Docker Compose:
# CentOS/RedHat sudo yum install -y docker-compose # Ubuntu/Debian sudo apt update && sudo apt install -y docker.io docker-compose -
创建项目目录并初始化 Rails + Docker:
mkdir rails-app && cd rails-app docker run --rm -it -v $(pwd):/usr/src/app ruby:3.3 bash # 在容器内执行 gem install bundler bundle init echo "gem 'rails', '~> 7.2'" >> Gemfile bundle install rails new . --skip-bundle --skip-test --skip-system-test --skip-hotwire bundle install exit -
编写
docker-compose.yml(放在项目根目录):version: '3.8' services: web: build: . ports: - "3000:3000" volumes: - .:/usr/src/app command: bash -c "rm -f tmp/pids/server.pid && rails server -b 0.0.0.0" environment: RAILS_ENV: development depends_on: db: condition: service_healthy db: image: postgres:16 environment: POSTGRES_USER: rails_user POSTGRES_PASSWORD: rails_pass POSTGRES_DB: rails_db volumes: - pgdata:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U rails_user"] interval: 5s timeout: 5s retries: 5 volumes: pgdata: -
构建并启动:
docker-compose up -d访问
http://<你的服务器IP>:3000即可看到 Rails 首页。
💡 提示:生产环境请改用
RAILS_ENV=production,配置 Nginx + Puma,并设置.env文件管理密钥。
✅ 方案二:一键脚本自动部署(适合无 Docker 偏好)
使用 RubyInstaller 或 rbenv + Bundler 手动安装,但更耗时。若追求“快”,可用以下脚本简化流程(以 Ubuntu 为例):
#!/bin/bash
set -e
# 更新系统
sudo apt update && sudo apt install -y curl git build-essential libssl-dev zlib1g-dev
libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev
libcurl4-openssl-dev software-properties-common
# 安装 rbenv
curl https://raw.githubusercontent.com/rbenv/rbenv-installer/master/bin/rbenv-installer | bash
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
# 安装 Ruby 3.3
rbenv install 3.3.4
rbenv global 3.3.4
rbenv rehash
# 安装 Bundler & Rails
gem install bundler
bundle config set --global path '~/.bundle'
bundle config set --local without 'development test'
# 创建新应用
rails new myapp --database=postgresql
cd myapp
# 安装 PostgreSQL 依赖
sudo apt install -y postgresql postgresql-contrib libpq-dev
# 初始化数据库(需先创建用户)
sudo -u postgres psql -c "CREATE USER rails WITH PASSWORD 'rails';"
sudo -u postgres psql -c "CREATE DATABASE rails_dev OWNER rails;"
# 启动服务
rails server -b 0.0.0.0
⚠️ 注意:生产环境务必配置防火墙(京东云安全组开放 3000/80/443)、启用 HTTPS、设置
SECRET_KEY_BASE环境变量。
🔐 安全建议(京东云特有)
- 在 京东云控制台 → 安全组 中仅开放必要端口(如 22、80、443),避免直接暴露 3000。
- 使用 密钥对登录,禁用密码 SSH。
- 定期更新系统:
sudo yum update/sudo apt upgrade。 - 启用 京东云监控与日志审计 功能。
需要我提供完整的 Dockerfile 优化版(含 Puma + Nginx + 多阶段构建)或 Rails 部署到京东云对象存储(OOS)的示例吗?
CLOUD技术博