Table of Contents
Η ανάπτυξη εφαρμογών Ruby on Rails στην παραγωγή μπορεί να είναι περίπλοκη λόγω εξαρτήσεων, διαμορφώσεων περιβάλλοντος και ρυθμίσεων διακομιστή. Η εμπορευματοποίηση με Docker απλοποιεί αυτή τη διαδικασία δημιουργώντας απομονωμένα, αναπαραγώγιμα περιβάλλοντα. Αυτό το άρθρο διερευνά πώς να εμπορευματοποιήσετε μια εφαρμογή Rails χρησιμοποιώντας Docker για απρόσκοπτη ανάπτυξη παραγωγής.
Γιατί να Περιορίσετε την Ρούμπι στις Εφαρμογές των Σιδηροδρόμων;
Η χρήση των σιδηροδρομικών συστημάτων προσφέρει πολλά οφέλη:
- Συνοχή: Εξασφαλίζει ότι η εφαρμογή τρέχει με τον ίδιο τρόπο σε όλη την ανάπτυξη, τη σταδιοδρομία και την παραγωγή.
- Κλιμακότητα: Εύκολα κλιμακώνονται τα δοχεία για να χειριστούν αυξημένη κυκλοφορία.
- Απόλυση: Αποφύγετε τις συγκρούσεις με άλλες εφαρμογές και εξαρτήσεις από τον εξυπηρετητή.
- Πορτοδυναμία: Μετακίνηση εφαρμογών μεταξύ περιβαλλόντων χωρίς τροποποίηση.
⁇ Docker για μια εφαρμογή Rails
Για να εμπορευματοποιήσετε μια εφαρμογή Rails, ξεκινήστε με τη δημιουργία ενός αρχείου Docker που καθορίζει το περιβάλλον. Αυτό το αρχείο καθορίζει τη βασική εικόνα, τις εξαρτήσεις και τις εντολές για την εκτέλεση της εφαρμογής.
Δείγμα αρχείου Docker
Παρακάτω είναι ένα παράδειγμα Dockerfile για μια εφαρμογή 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"]
⁇ σύνθεσης Docker για τη ρύθμιση πολλαπλών εμπορευματοκιβωτίων
Για την παραγωγή, είναι κοινό να χρησιμοποιήσετε Docker Συνθέστε για τη διαχείριση πολλαπλών εμπορευματοκιβωτίων, όπως η εφαρμογή 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 Composition. Μπορείτε στη συνέχεια να αποκτήσετε πρόσβαση στην εφαρμογή Rails μέσω της διεύθυνσης IP του διακομιστή στη θύρα 3000.
Συμπέρασμα
Με τη δημιουργία ενός αρχείου Docker και τη χρήση Docker Compuse, οι προγραμματιστές μπορούν να μεταφέρουν αποτελεσματικά τις εφαρμογές τους Rails σε περιβάλλοντα παραγωγής με εμπιστοσύνη.