- vừa được xem lúc

Cách Thiết Lập Nhanh Môi Trường Phát Triển Rails

0 0 6

Người đăng: Sunny

Theo Viblo Asia

Để biết phương pháp nhanh hơn, xem phần cuối của bài viết.

Cách Tiếp Cận

Đầu tiên, khởi động một container Ruby tạm thời để tạo dự án, sau đó xây dựng image phát triển cần thiết.

Image description

Tạo Dự Án Mới

Để tạo một dự án Rails, khởi động một container Ruby tạm thời:

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

Cài đặt gem Rails bên trong container:

/app# gem install rails

Sau đó tạo dự án:

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

Ở đây, chúng ta sử dụng tham số --skip-bundle vì đây chỉ là một container tạm thời. Chúng ta sẽ chạy bundle trong container phát triển sau. Bây giờ, container tạm thời đã hoàn thành nhiệm vụ của mình. Thoát khỏi container bằng cách nhấn ctrl-d hoặc gõ exit.

Thêm Dockerfile

Thêm một Dockerfile trong thư mục dự án với nội dung sau:

FROM ruby:3.2 # Đặt lại biến môi trường này do image Ruby đặt thành giá trị mặc định của nó
ENV BUNDLE_APP_CONFIG=.bundle # Bỏ chú thích phần này nếu bạn cần cài đặt các phụ thuộc khác
# RUN apt-get update && apt-get install -y --no-install-recommends \
# nodejs \
# npm \
# postgresql-client WORKDIR /app

Đây là một image môi trường phát triển Rails tối thiểu. Nếu cần, bạn có thể cài đặt các phụ thuộc hệ thống khác bằng cách sử dụng apt-get. Chúng ta không cần xây dựng image ngay bây giờ; chúng ta sẽ xây dựng nó sau bằng cách sử dụng lệnh docker compose.

Thêm docker-compose.yml

Thêm một tệp docker-compose.yml trong thư mục dự án với nội dung sau:

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

Điều này định nghĩa các dịch vụ webpostgres. Dịch vụ web sẽ xây dựng một image dựa trên Dockerfile trong thư mục hiện tại, gắn thư mục hiện tại vào thư mục /app bên trong container, mở cổng 3000 và thêm một phụ thuộc vào dịch vụ postgres. Dịch vụ postgres sẽ sử dụng image postgres và đặt mật khẩu ban đầu qua biến môi trường.

Xây Dựng Image

Chạy lệnh sau:

$ docker compose build

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

Vào Dòng Lệnh

Chạy lệnh sau:

$ docker compose run web bash

Điều này sẽ khởi động container dịch vụ web và mở một shell bash. Trong shell này, bạn có thể chạy các lệnh cần thiết cho phát triển địa phương, chẳng hạn như bundle install, bin/rails g, v.v. Tất cả các thao tác tiếp theo cần được thực hiện bên trong container sẽ được thực hiện thông qua shell này.

Chạy Bundle

Đầu tiên, chạy lệnh sau bên trong container:

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

Lệnh này đặt thư mục cài đặt bundle vào thư mục vendor/bundle dưới dự án. Bằng cách này, mỗi khi bạn cập nhật Gemfile trong quá trình phát triển, bạn sẽ không cần xây dựng lại image.

Sau đó chạy bundle:

/app# bundle install

Lưu ý: nhớ thêm vendor/bundle vào .gitignore.

Chuẩn Bị Cơ Sở Dữ Liệu

Trước khi tạo cơ sở dữ liệu, hãy chỉnh sửa cài đặt cơ sở dữ liệu của dự án Rails. Trong môi trường Docker Compose, PostgreSQL và quy trình Rails chạy trong các container khác nhau, tương tự như các máy chủ khác nhau, nơi tên dịch vụ là tên mạng tương ứng của chúng.

Chỉnh sửa database.yml để thêm nội dung sau vào các phần developmenttest:

 host: postgres username: postgres password: postgres

Sau đó chạy lệnh sau:

/app# bin/setup

Điều này sẽ tạo cơ sở dữ liệu tương ứng.

Khởi Động Dịch Vụ Web

Sau khi chuẩn bị, đã đến lúc khởi động dịch vụ web. Mở một terminal khác và chạy lệnh sau:

$ docker compose up

Khi khởi động hoàn tất, mở http://localhost:3000 để xem trang chào mừng của Rails.

Cách Đơn Giản Hơn

Tải xuống ServBay ServBay là một công cụ quản lý môi trường phát triển tất cả trong một hỗ trợ 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 (MySQL), PostgreSQL, cũng như các cơ sở dữ liệu NoSQL như Redis và Memcached.

Để thiết lập một môi trường Redis, chỉ cần tải xuống gói Redis trong ServBay và tất cả các cấu hình sẽ được hoàn thành trong vòng 3 phút.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Caching đại pháp 2: Cache thế nào cho hợp lý?

Caching rất dễ. Mình không nói đùa đâu, caching rất là dễ. Ai cũng có thể làm được chỉ sau 10 phút đọc tutorial. Nó cũng giống như việc đứa trẻ lên 3 đã có thể cầm bút để vẽ vậy.

0 0 126

- vừa được xem lúc

Caching đại pháp 1: Nấc thang lên level của developer

Bí quyết thành công trong việc đáp ứng hệ thống triệu user của những công ty lớn (và cả công ty nhỏ). Tại sao caching lại là kỹ thuật tối quan trọng để phù phép ứng dụng rùa bò của chúng ta thành siêu phẩm vạn người mê.

0 0 82

- vừa được xem lúc

Cache dữ liệu Nodejs với Redis

Một tí gọi là lý thuyết để anh em tham khảo. Cache là gì. Lợi ích của việc cache data. .

0 0 111

- vừa được xem lúc

Nguyên tắc hoạt động của redis server

Sự ra đời của Redis. . Câu chuyện bắt đầu khi tác giả của Redis, Salvatore Sanfilippo. (nickname: antirez), cố gắng làm những công việc gần như là không.

0 0 97

- vừa được xem lúc

Viết ứng dụng chat realtime với Laravel, VueJS, Redis và Socket.IO, Laravel Echo

Xin chào tất cả các bạn, đây là một trong những bài post đầu tiên của mình. Sau bao năm toàn đi đọc các blog tích luỹ được chút kiến thức của các cao nhân trên mạng.

0 0 918

- vừa được xem lúc

Tìm hiểu tổng quan về Redis

1. Lời mở đầu.

0 0 368