如何使用Docker设置Rails开发环境
让Rails应用程序的代码库运行起来不应该很困难。然而,开发人员花费数小时解决环境问题。Docker解决了这个问题。
为什么在开发中使用Docker?
- 一致的环境 - 在每台机器上都一样运行
- 轻松入职 - 新开发人员只需运行一个命令
- 隔离的依赖 - 与其他项目没有冲突
- 生产环境一致性 - 在类似生产的环境中开发
基本设置
创建Dockerfile:
FROM ruby:3.2
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client
WORKDIR /app
COPY Gemfile Gemfile.lock ./
RUN bundle install
COPY . .
CMD ["rails", "server", "-b", "0.0.0.0"]
创建docker-compose.yml:
version: '3.8'
services:
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: password
volumes:
- postgres_data:/var/lib/postgresql/data
web:
build: .
command: bash -c "rm -f tmp/pids/server.pid && rails server -b 0.0.0.0"
volumes:
- .:/app
ports:
- "3000:3000"
depends_on:
- db
environment:
DATABASE_URL: postgres://postgres:password@db/app_development
volumes:
postgres_data:
运行你的应用
docker compose build
docker compose up
访问http://localhost:3000,你就可以开始开发了。
提示
- 使用卷挂载实现代码实时重载
- 根据需要添加Redis、Sidekiq
- 为常用命令创建
bin/docker-dev脚本
Docker消除了”在我的机器上可以运行”的问题,让你的团队专注于构建功能。