0
0
Lập trình
Harry Tran
Harry Tran106580903228332612117

Hướng Dẫn Chi Tiết Cài Đặt Môi Trường Phát Triển Ruby on Rails Bằng Docker

Đăng vào 3 tuần trước

• 4 phút đọc

Chủ đề:

Redis

Hướng Dẫn Chi Tiết Cài Đặt Môi Trường Phát Triển Ruby on Rails Bằng Docker

Để nắm vững những phương pháp cài đặt nhanh chóng, hãy xem phần cuối của bài viết.

Cách Tiếp Cận Cài Đặt Dự Án

Trong bài viết này, chúng ta sẽ khởi động một môi trường phát triển Ruby on Rails bằng cách sử dụng Docker. Quy trình này bao gồm việc tạo một dự án Rails trong một container Ruby tạm thời và sau đó xây dựng một image phát triển thích hợp cho dự án của chúng ta.

Bước 1: Tạo Dự Án Rails Mới

Để bắt đầu, bạn cần khởi động một container Ruby tạm thời và tạo dự án Rails của mình. Sử dụng lệnh sau để khởi động container:

bash Copy
$ docker run -it -v $(pwd):/app -w /app ruby:3.2 bash

Khi đã ở trong container, cài đặt gem Rails với lệnh:

bash Copy
/app# gem install rails

Sau khi cài đặt, bạn có thể tạo một dự án mới:

bash Copy
/app# rails new myapp --database=postgresql --css=sass --skip-bundle

Lưu ý rằng tham số --skip-bundle được sử dụng bởi vì chúng ta chỉ đang làm việc với một container tạm thời. Sau khi dự án được tạo, bạn có thể thoát khỏi container bằng cách nhấn ctrl-d hoặc nhập lệnh exit.

Bước 2: Tạo Dockerfile

Sau khi thoát khỏi container, hãy tạo một tệp Dockerfile trong thư mục dự án và thêm vào nội dung sau:

dockerfile Copy
FROM ruby:3.2

# Thiết lập biến môi trường
ENV BUNDLE_APP_CONFIG=.bundle

# Cài đặt các phụ thuộc cần thiết (nếu cần)
# RUN apt-get update && apt-get install -y --no-install-recommends \
#    nodejs \
#    npm \
#    postgresql-client

WORKDIR /app

Dockerfile này định nghĩa một image môi trường phát triển Ruby on Rails cơ bản. Bạn có thể cài đặt thêm các phụ thuộc hệ thống nếu cần.

Bước 3: Tạo docker-compose.yml

Tiếp theo, hãy tạo một tệp docker-compose.yml trong thư mục dự án với nội dung:

yaml Copy
version: "3.9"

services:
  web:
    build: .
    command: bin/rails server -b 0.0.0.0
    volumes:
      - .:/app
    ports:
      - 3000:3000
    depends_on:
      - postgres
  postgres:
    image: postgres:13
    environment:
      POSTGRES_PASSWORD: postgres

Tệp này sẽ định nghĩa hai dịch vụ: webpostgres. Dịch vụ web sẽ xây dựng image dựa trên Dockerfile, gắn volume để dễ dàng phát triển, mở cổng 3000, và phụ thuộc vào dịch vụ postgres.

Bước 4: Xây Dựng Image

Để xây dựng image, chạy lệnh sau:

bash Copy
$ docker compose build

Docker Compose sẽ đọc tệp docker-compose.yml và xây dựng các image tương ứng. Lưu ý rằng mỗi khi bạn chỉnh sửa Dockerfile, bạn cần chạy lại lệnh này.

Bước 5: Vào Dòng Lệnh Container

Chạy lệnh sau để vào shell của container dịch vụ web:

bash Copy
$ docker compose run web bash

Trong shell này, bạn có thể chạy các lệnh cần thiết cho phát triển, chẳng hạn như bundle install, bin/rails g, và nhiều lệnh khác.

Bước 6: Chạy Bundle Cài Đặt

Đầu tiên, hãy cấu hình thư mục cài đặt bundle bằng lệnh:

bash Copy
/app# bundle config set --local path vendor/bundle

Điều này sẽ chỉ định thư mục cài đặt vendor/bundle trong dự án của bạn. Sau đó, chạy lệnh cài đặt bundle:

bash Copy
/app# bundle install

Đừng quên thêm vendor/bundle vào .gitignore để tránh theo dõi các tệp không cần thiết.

Bước 7: Chuẩn Bị Cơ Sở Dữ Liệu

Trước khi tạo cơ sở dữ liệu, bạn cần cấu hình database.yml trong dự án Rails để kết nối với dịch vụ PostgreSQL. Trong tệp database.yml, thêm các dòng sau vào phần developmenttest:

yaml Copy
  host: postgres
  username: postgres
  password: postgres

Sau đó, chạy lệnh sau để khởi tạo cơ sở dữ liệu:

bash Copy
/app# bin/setup

Bước 8: Khởi Động Dịch Vụ Web

Cuối cùng, bạn có thể khởi động dịch vụ web. Mở một terminal mới và chạy lệnh:

bash Copy
$ docker compose up

Khi dịch vụ đã khởi động xong, bạn có thể mở trình duyệt và truy cập http://localhost:3000 để xem trang chào mừng của Rails.

Cách Thiết Lập Nhanh Chóng Hơn

Nếu bạn muốn một giải pháp đơn giản hơn, hãy thử ServBay. Đây là một công cụ quản lý môi trường phát triển tất cả trong một cho nhiều ngôn ngữ phát triển và các thành phần cơ sở dữ liệu, bao gồm PHP, Node.js, MariaDB, PostgreSQL, cũng như các cơ sở dữ liệu NoSQL như Redis và Memcached.

Chỉ cần tải xuống gói Redis trong ServBay để thiết lập một môi trường Redis và tất cả sẽ được cấu hình tự động trong vòng 3 phút.
source: viblo

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào