Table of Contents
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.