Disenyo at Pagsusuri sa Inhinyeriya
Pinadadali ang Pag - aalis ng mga Panustos sa mga Maninaw
Table of Contents
Ang pag - aalis sa mga aplikasyon sa produksiyon ng Ruby on Rails ay maaaring maging masalimuot dahil sa mga dependensiya, mga kaayusan sa kapaligiran, at server setup.coinderization kasama ang Docker simplifes sa prosesong ito sa pamamagitan ng paglikha ng nakabukod, muling - nababagong mga kapaligiran.
Bakit Dapat Ilagay ang Ruby sa mga Suplay ng Rails?
Ang paglalagay ng mga aplikasyon sa Rails ay nagbibigay ng maraming pakinabang:
- [Consistency: Ang app ay tumatakbo sa parehong paraan sa ibayo ng pag-unlad, pag-unlad, at produksiyon.
- [Talaksan: Easy scale containers upang pangasiwaan ang tumaas na trapiko.
- [Isolation: Iwasan ang mga salungatan sa ibang aplikasyon at dependensiya sa server.
- [Papamantasan: Ilipat ang mga aplikasyon sa pagitan ng mga kapaligiran nang walang pagbabago.
Paglalagay ng Docker Para sa Pag - abuso sa Lamok
Upang malagyan ng lalagyan ang isang Rails app, simulan sa pamamagitan ng paglikha ng Dockerfile na nagbibigay - kahulugan sa kapaligiran.
Sample Docker Profile
Nasa ibaba ang isang halimbawa na Dockerfile para sa isang aplikasyon ng Rails:
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"]
Pagbuo ng Docker Compose Para sa Multi-Container Setaple
Para sa produksiyon, karaniwang gumagamit ng Docker Compose upang pangasiwaan ang mga maramihang lalagyan, tulad ng Rails app at database. heto ang isang halimbawang porter-compose.yml file:
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:
Paglubog sa Produksiyon
Kapag nakaayos na, itayo at patakbuhin ang iyong mga sisidlan:
docker-compose build
docker-compose up -d
Maglagay ng app ang mga file sa pamamagitan ng IP address ng server sa port 3000.
Pagsasaayos
Sa pamamagitan ng paggamit ng Docker streams sa mga aplikasyon, nagpapasulong ng pagbabagu - bago, at pag - ikli ng mga ito sa mga lugar na may kumpiyansa, nakalilikha ng Dockerfile at gumagamit ng Docker Composse.