استقرار برنامه های Ruby on Rails برای تولید می تواند به دلیل وابستگی ها، تنظیمات محیط زیست و تنظیمات سرور پیچیده باشد. Containerization با Docker این فرایند را با ایجاد محیط های جداگانه و قابل تکرار ساده می کند.این مقاله بررسی می کند که چگونه یک برنامه راه آهن را با استفاده از Docker برای استقرار تولید یکپارچه، به کار گیرید.

چرا Ruby on Rails Application را ذخیره می کنیم؟

برنامه های راه آهن Containerizing مزایای زیادی را ارائه می دهد:

  • سازگاری: اطمینان حاصل کنید که برنامه همان شیوه را در سراسر توسعه، مرحله بندی و تولید اجرا می کند.
  • [در این میان] [از این رو]: [[[۱]] [۱۰] [۱]] [۱۰] [۱] [۱۰] [۱]] [۱۰] [۱] [۱] [۱۰] [۱] [۱۰] [۱] [۱۰] [۱] [۱] [۳] [۱] [۱] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۵] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۱] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳] [۳]
  • [[۱]:۱۰] حل و فصل: [[۱۰] [۱۰] از تعارض با سایر برنامه ها و وابستگی ها به سرور اجتناب کنید.
  • [[۱] [۱۰] قابلیت حمل و نقل: [۱۰] [۱۰] [۱] [۱۰] [۱] [۱۰] [۳] [۱]]) برنامه های بین محیط ها را بدون اصلاح حرکت دهید.

نصب Docker برای یک برنامه راه آهن

برای containerize یک برنامه Rails، با ایجاد یک Dockerfile که محیط را تعریف می کند، شروع کنید.این فایل تصویر پایه، وابستگی ها و دستورات را برای اجرای برنامه مشخص می کند.

نمونه Dockerfile

در زیر یک مثال Dockerfile برای یک برنامه راه آهن است:

FROM ruby:3.1.0

# Install dependencies
RUN apt-get update -qq && apt-get install -y nodejs postgresql-client

# Set working directory
WORKDIR /app

# Add Gemfile and install gems
COPY Gemfile* /app/
RUN bundle install

# Copy the rest of the application code
COPY . /app

# Precompile assets
RUN RAILS_ENV=production bundle exec rails assets:precompile

# Expose port 3000
EXPOSE 3000

# Start the server
CMD ["bundle", "exec", "puma", "-C", "config/puma.rb"]

پیکربندی Docker Compose برای Multi-Container

برای تولید، معمول است که از Docker Compose برای مدیریت چندین کانتینر مانند برنامه Rails و پایگاه داده استفاده کنید.در اینجا یک نمونه فایل docker-compose.yml است:

version: '3.8'

services:
 db:
 image: postgres:13
 environment:
 POSTGRES_USER: railsuser
 POSTGRES_PASSWORD: password
 POSTGRES_DB: railsapp_production
 volumes:
 - db_data:/var/lib/postgresql/data

 web:
 build: .
 ports:
 - "3000:3000"
 environment:
 DATABASE_URL: postgres://railsuser:password@db:5432/railsapp_production
 depends_on:
 - db

volumes:
 db_data:

استقرار به تولید

هنگامی که پیکربندی، ساخت و اجرای ظروف خود را:

docker-compose build
docker-compose up -d

اطمینان حاصل کنید که محیط سرور شما از Docker و Docker Compose پشتیبانی می کند، سپس می توانید از طریق آدرس IP سرور در پورت ۳۰۰۰ به برنامه Rails خود دسترسی پیدا کنید.

نتیجه گیری

Containering Ruby on Rails برنامه های کاربردی با استقرار Docker ساده سازی، افزایش سازگاری و ساده سازی مقیاس پذیری با ایجاد یک Dockerfile و استفاده از Docker Compose، توسعه دهندگان می توانند برنامه های Rail خود را به محیط های تولیدی با اعتماد به نفس حرکت کنند.