... > Ruby > Работа с контейнерами...

Работа с контейнерами в Ruby

НАВИГАЦИЯ ПО СТРАНИЦЕ

Установка Docker Создание Docker-контейнера Работа с Docker Compose

Docker — это открытая платформа, которая облегчает разработку, доставку и выполнение приложений в контейнерах. Контейнеры – это легковесные, автономные и переносимые окружения, упакованные со всем необходимым для запуска приложения.

Установка Docker

Для начала работы с Docker установите Docker Engine на свой компьютер. Вы можете найти инструкции для вашей операционной системы на официальном сайте Docker.

Создание Docker-контейнера для Ruby-приложения

  1. Dockerfile:

    Создайте файл с именем Dockerfile в корневой папке вашего проекта. В этом файле определите инструкции для сборки образа Docker.

     # Используем базовый образ с Ruby
    FROM ruby:latest
    
    # Устанавливаем зависимости
    RUN apt-get update && apt-get install -y \
        build-essential \
        nodejs
    
    # Устанавливаем гемы
    COPY Gemfile Gemfile.lock ./
    RUN gem install bundler && bundle install --jobs 20 --retry 5
    
    # Копируем код приложения в контейнер
    COPY . .
    
    # Указываем порт, на котором будет работать приложение
    EXPOSE 3000
    
    # Команда для запуска приложения
    CMD ["rails", "server", "-b", "0.0.0.0"]
  2. Сборка Docker-образа:

    Откройте терминал в папке с Dockerfile и выполните команду для сборки образа.

    docker build -t my-ruby-app .
  3. Запуск контейнера:

    После успешной сборки образа запустите контейнер.

     docker run -p 3000:3000 my-ruby-app

    Ваше Ruby-приложение теперь работает в контейнере Docker и доступно по адресу http://localhost:3000.

Работа с Docker Compose

Docker Compose — инструмент для определения и запуска многоконтейнерных Docker-приложений. В файле docker-compose.yml определите настройки для вашего приложения.

version: '3'

services:
  web:
    build: .
    ports:
      - "3000:3000"

Для запуска приложения с использованием Docker Compose выполните следующую команду:

docker-compose up

Docker и контейнеризация предоставляют мощные инструменты для упаковки, распространения и выполнения приложений в изолированных средах. Они упрощают развертывание и обеспечивают консистентность окружения между разработкой и продакшеном.