Rubyn käyttöönotto kiskoilla -sovelluksissa tuotanto voi olla monimutkaista riippuvuuksien, ympäristökokoonpanojen ja palvelinten ansiosta. Dockerin kontissa työskentely yksinkertaistaa tätä prosessia luomalla erillisiä, toistettavissa olevia ympäristöjä. Tässä artikkelissa tarkastellaan, miten kontaktoidaan Rails-sovellus Dockerin avulla saumattomaen tuotannon käyttöönottoon.

Miksi Containize Ruby Rails-sovelluksissa?

Kontaktizing Rails -sovellukset tarjoavat lukuisia etuja:

  • Konsistenssi:[ Varmistaa sovelluksen kulkevan samalla tavalla kehityksen, lavastus- ja tuotantovaiheiden välillä.
  • Kalibrointi:[ Helposti mittakaavassa säiliöitä käsitellä lisääntynyttä liikennettä.
  • Isolaatio:[ Vältä ristiriidat muiden sovellusten ja riippuvuussuhteiden kanssa palvelimella.
  • Portability:[) Siirrä sovelluksia ympäristöjen välillä muuttamatta.

Dockerin asettaminen kiskoille -sovellusta varten

Voit containerize Rails-sovellus, aloittaa luomalla Dockerfile, joka määrittelee ympäristön. Tämä tiedosto määrittää peruskuvan, riippuvuussuhteet ja komennot sovelluksen.

Näyte-Dockerfile

Alla on esimerkki Dockerfile Rails-sovelluksesta:

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-koostutuksen asetukset

Tuotannossa on tavallista käyttää Docker Compose-kontteja useiden konttien, kuten Rails-sovelluksen ja tietokannan hallintaan. Tässä on esimerkki docker-compose.yml-tiedosto:

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:

Tuotanto

Kun konfigurointi, rakentaa ja ajaa säiliöt:

docker-compose build
docker-compose up -d

Varmista palvelinympäristösi tukee Dockeria ja Docker Composea. Voit käyttää Rails-sovellustasi palvelimen IP-osoitteen kautta portissa 3000.

Päätelmät

Kontaktizing Ruby on Rails sovellukset Docker virtaviivaistaa käyttöönottoa, parantaa johdonmukaisuutta, ja yksinkertaistaa skaalaus. Luomalla Dockerfile ja Docker Compose, kehittäjät voivat tehokkaasti siirtää Rails sovellukset tuotantoympäristöihin luottavaisin mielin.