برنامه نویسی

چگونه به سرعت یک محیط توسعه ریل راه اندازی کنیم

برای یک روش حتی سریعتر، انتهای مقاله را ببینید.

رویکرد

ابتدا یک ظرف Ruby موقت برای ایجاد پروژه راه اندازی کنید و سپس تصویر توسعه لازم را بسازید.

توضیحات تصویر

یک پروژه جدید ایجاد کنید

برای ایجاد یک پروژه Rails، یک کانتینر Ruby موقت راه اندازی کنید:

$ docker run -it -v $(pwd):/app -w /app ruby:3.2 bash
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نگین Rails را در داخل ظرف نصب کنید:

/app# gem install rails
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس پروژه را ایجاد کنید:

/app# rails new myapp --database=postgresql --css=sass --skip-bundle
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

در اینجا، ما از --skip-bundle پارامتر زیرا این فقط یک ظرف موقت است. بعداً بسته نرم افزاری را در ظرف توسعه اجرا خواهیم کرد. اکنون ظرف موقت به هدف خود رسیده است. با فشار دادن از ظرف خارج شوید ctrl-d یا تایپ کردن exit.

یک Dockerfile اضافه کنید

یک Dockerfile در فهرست پروژه با محتوای زیر اضافه کنید:

FROM ruby:3.2

# Reset this environment variable set by the Ruby image to its default value
ENV BUNDLE_APP_CONFIG=.bundle

# Uncomment this section if you need to install other dependencies
# RUN apt-get update && apt-get install -y --no-install-recommends \
#    nodejs \
#    npm \
#    postgresql-client

WORKDIR /app
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این یک تصویر مینیمال محیط توسعه Rails است. در صورت نیاز، می‌توانید وابستگی‌های دیگر سیستم را با استفاده از آن نصب کنید apt-get. ما هنوز نیازی به ساخت تصویر نداریم. بعداً با استفاده از دستور docker compose آن را می سازیم.

docker-compose.yml را اضافه کنید
a اضافه کنید docker-compose.yml فایل در پوشه پروژه با محتوای زیر:

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
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این تعریف می کند web و postgres خدمات. را web سرویس یک تصویر بر اساس Dockerfile در دایرکتوری فعلی می‌سازد، دایرکتوری فعلی را روی آن سوار می‌کند /app دایرکتوری داخل کانتینر، پورت 3000 را در معرض دید قرار دهید و یک وابستگی به آن اضافه کنید postgres سرویس. را postgres سرویس استفاده خواهد کرد postgres تصویر و رمز اولیه را از طریق متغیر محیطی تنظیم کنید.

تصویر را بسازید

دستور زیر را اجرا کنید:

$ docker compose build
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

Docker Compose پیکربندی را در آن می خواند docker-compose.yml و تصاویر مربوطه را بسازید. توجه: هر بار که Dockerfile را تغییر می دهید، باید این دستور را دوباره اجرا کنید.

وارد Command Line شوید

دستور زیر را اجرا کنید:

$ docker compose run web bash
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این شروع خواهد شد web ظرف سرویس و باز کردن پوسته bash. در این پوسته می توانید دستورات مورد نیاز برای توسعه محلی مانند bundle install، bin/rails gو غیره تمامی عملیات های بعدی که باید در داخل کانتینر اجرا شوند از طریق این پوسته انجام خواهند شد.

باندل را اجرا کنید

ابتدا دستور زیر را در داخل کانتینر اجرا کنید:

/app# bundle config set --local path vendor/bundle
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

این دستور دایرکتوری نصب باندل را روی vendor/bundle دایرکتوری تحت پروژه به این ترتیب، هر بار که Gemfile را در حین توسعه به روز می کنید، نیازی به بازسازی تصویر نخواهید داشت.

سپس بسته نرم افزاری را اجرا کنید:

/app# bundle install
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توجه: به یاد داشته باشید که اضافه کنید vendor/bundle به .gitignore.

پایگاه داده را آماده کنید

قبل از ایجاد پایگاه داده، تنظیمات پایگاه داده پروژه Rails را تغییر دهید. در محیط Docker Compose، PostgreSQL و فرآیند Rails در کانتینرهای مختلف مشابه میزبان‌های مختلف اجرا می‌شوند، جایی که نام سرویس نام شبکه مربوطه آنهاست.

تغییر database.yml برای اضافه کردن مطالب زیر در development و test بخش ها:

  host: postgres
  username: postgres
  password: postgres
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

سپس دستور زیر را اجرا کنید:

/app# bin/setup
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

با این کار پایگاه داده های مربوطه ایجاد می شود.

وب سرویس را راه اندازی کنید

پس از آماده سازی، نوبت به راه اندازی وب سرویس می رسد. ترمینال دیگری را باز کنید و دستور زیر را اجرا کنید:

$ docker compose up
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

پس از اتمام راه اندازی، باز کنید http://localhost:3000 برای دیدن صفحه خوش آمدگویی Rails.

یک راه حتی ساده تر

ServBay را دانلود کنید
ServBay یک ابزار مدیریت محیط توسعه یکپارچه است که از چندین زبان توسعه و مؤلفه های پایگاه داده، از جمله PHP، Node.js، MariaDB (MySQL)، PostgreSQL، و همچنین پایگاه های داده NoSQL مانند Redis و Memcached پشتیبانی می کند.

برای راه اندازی یک محیط Redis، به سادگی بسته Redis را در ServBay دانلود کنید، و تمام تنظیمات تنها در 3 دقیقه تکمیل می شود.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا