最近在面向日企找工作的时候,线上面试遇到一个题目,需要部署一个 rails 应用到公网,让对方来进行 API 测试
题目很简单,写一个 CRUD 的 API,这是 rails 最擅长的,搭配最近比较火的 AI 编辑器cursor,10 分钟就搞定了,部署花了 3 小时都没搞定
想了 3 种方案进行部署到公网
结果是
在这个网址里创建一个属于你的免费数据库https://dashboard.render.com/new/database
在这里填写数据库名称
其余的什么都不要填,下面的 Instance Type 选择 free
数据库就建好了
#!/usr/bin/env bash
# exit on error
set -o errexit
bundle install
bundle exec rake assets:precompile
bundle exec rake assets:clean
bundle exec rake db:migrate
这里什么都不需要改!
在根目录 下创建 render.yaml
databases:
- name: render_deploy_test # 把这里改成你刚才第1步创建的database的名字
plan: free
services:
- type: web
plan: free
name: render_deploy_test
env: ruby
buildCommand: "./bin/render-build.sh"
startCommand: "bundle exec rails server"
envVars:
- key: DATABASE_URL
fromDatabase:
name: render_deploy_test # 把这里改成你刚才第1步创建的database的名字
property: connectionString
- key: RAILS_MASTER_KEY
sync: false
这里没有需要改的,直接复制下面的就行了
default: &default
adapter: postgresql
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
adapter: sqlite3
database: db/development.sqlite3
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
<<: *default
database: db/test.sqlite3
production:
<<: *default
url: <%= ENV['DATABASE_URL'] %>
所有的准备工作都做完了
下面就把这个项目传到 github 上,这个具体就不展开说了,相信大家都有自己的习惯
我一般先在 github 上创建一个仓库,然后拉到本地,把.git 目录复制到我想要上传的项目目录里
在这个网址里https://dashboard.render.com/blueprints,开始准备部署
跟着这个步骤,基本就可以免费部署一个简单的应用了
这是我部署的应用,速度比较慢,不过能在公网访问:https://render-deploy-test-1lnf.onrender.com/
github 地址:https://github.com/suzulang/render_deploy_test
欢迎反馈问题