Docker Ruby on Rails 配置

98 阅读1分钟
  1. 设置 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

  1. 安装相关工具
<!-- 安装rails -->
gem install rails -v 7.0.2.3
<!-- 安装psql驱动,pacman是archlinux安装软件的工具 -->
pacman -S postgresql-libs

  1. 初始化项目 :在repos工作目录下进行(数据可持久化)
cd ~/repos
<!-- 创建一个mangosteen-1的应用 -->
rails new --api --database=postgresql --skip-test mangosteen-1
  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查看

  1. 连接数据库

修改 database.yml,配置相关数据库参数

code mangosteen-1

development:
  <<: *default
  database: mangosteen_dev
  username: mangosteen
  password: 123456
  host: db-for-mangosteen

  1. 运行server
bin/rails s
  1. 如何开启某个容器(连接数据库)
docker start db-for-mangosteen

rvm、gem、bundle的区别

  • rvm 管理ruby版本。类似nvm
  • gem 是安装各种库的工具
  • bundle 是 rails 框架里面对gem依赖包进行管理的工具(即bundle是更上一层的管理工具,可以用来管理安装gems) 类似pnpm