使用京东云服务器时,如何快速搭建Ruby on Rails环境?

在京东云服务器(JD Cloud)上快速搭建 Ruby on Rails 环境,推荐使用 Docker脚本自动化部署。以下是两种高效方案:


✅ 方案一:使用 Docker 快速部署(推荐,10 分钟搞定)

适合希望环境隔离、可复现的场景。

步骤:

  1. 登录京东云 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
  2. 创建项目目录并初始化 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
  3. 编写 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:
  4. 构建并启动

    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技术博 » 使用京东云服务器时,如何快速搭建Ruby on Rails环境?