- 设置 Ruby Gems 镜像
<!-- 添加镜像源并移除默认源 -->
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
<!-- 替换 bundler 默认源 -->
bundle config mirror.https://rubygems.org https://gems.ruby-china.com
- 安装相关工具
<!-- 安装rails -->
gem install rails -v 7.0.2.3
<!-- 安装psql驱动,pacman是archlinux安装软件的工具 -->
pacman -S postgresql-libs
- 初始化项目 :在repos工作目录下进行(数据可持久化)
cd ~/repos
<!-- 创建一个mangosteen-1的应用 -->
rails new --api --database=postgresql --skip-test mangosteen-1
- 创建并启动数据库
创建了db-for-mangosteen容器,数据库为mangosteen_dev,镜像为postgres:14,数据卷为mangosteen-data,docker 网络为network1
<!-- 该命令需要在系统的终端运行,而不是容器!!! -->
docker run -d --name db-for-mangosteen -e POSTGRES_USER=mangosteen -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=mangosteen_dev -e PGDATA=/var/lib/postgresql/data/pgdata -v mangosteen-data:/var/lib/postgresql/data --network=network1 postgres:14
可通过 docker ps查看docker容器,也可通过docker应用程序的Dashboard查看
- 连接数据库
修改 database.yml,配置相关数据库参数
code mangosteen-1
development:
<<: *default
database: mangosteen_dev
username: mangosteen
password: 123456
host: db-for-mangosteen
- 运行server
bin/rails s
- 如何开启某个容器(连接数据库)
docker start db-for-mangosteen
rvm、gem、bundle的区别
- rvm 管理ruby版本。类似nvm
- gem 是安装各种库的工具
- bundle 是 rails 框架里面对gem依赖包进行管理的工具(即bundle是更上一层的管理工具,可以用来管理安装gems) 类似pnpm