rails-container

rails-container-app

Статус сборки

Роль, используемая для загрузки, настройки и запуска docker-контейнера с приложением на rails. Перед запуском приложения роль выполняет миграции.

Требования

Тестировалось на Ubuntu 14.04.

Эта роль использует модуль docker от Ansible, поэтому требования таковы же.

Переменные роли

Вот список обязательных переменных с использованием значений по умолчанию:

# Docker-образ и тег репозитория
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'

# Название контейнера во время его работы
app_container_name: 'rails'
# Список открытых портов для контейнера
app_ports_mapping: []
# Команда для выполнения в docker
app_command: 'bundle exec rails s'
# Словарь переменных окружения
app_environment_vars: {}
# Файлы конфигурации для развертывания на сервере и монтирования в образ
app_configuration_files: {}

Если вы загружаете образ из приватного docker-репозитория, укажите учетные данные:

# Учетные данные Docker для приватного образа
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'

Эти переменные являются необязательными и могут быть изменены при необходимости:

# Окружение для работы rails
app_environment: production
# Папка с конфигурационными файлами на локальном компьютере
app_files_local_folder: './files'
# Принудительная загрузка образа
app_force_image_pull: true
# Политика перезапуска контейнера
app_container_restart_policy: always
# Команда миграции
app_migration_command: 'bundle exec rake db:migrate'
# Ограничение памяти контейнера
container_memory_limit: 1g

Зависимости

Нет зависимостей.

Пример Playbook

Простейший playbook может выглядеть так:

- hosts: webservers
  roles:
    - role: rails-container-app
      app_docker_image: 'maticinsurace/rails-app'
      app_docker_tag: 'latest'
      app_ports_mapping: ['3000:3000']

Этот playbook загрузит образ maticinsurace/rails-app:latest, выполнит миграции bundle exec rake db:migrate и запустит приложение на rails bundle exec rails s.

Если вы хотите указать дополнительные переменные окружения:

- hosts: webservers
  roles:
    - role: rails-container-app
      app_command: 'bundle exec sidekiq'
      app_environment_vars: 
        REDIS_URL: redis://redis.host:6379
        DATABASE_URL: postgress://db.host:5432

Это выполнит sidekiq и добавит переменные для redis/postgress.

Если вы хотите развернуть пользовательские файлы в приложении:

- hosts: webservers
  roles:
    - role: rails-container-app
      app_files_local_folder: './files/webserver'
      app_configuration_files: 
        settings.yaml: /app/config/settings.local.yaml
        apns_cert.pem: certs/apns.pem

Это прочитает файл с локального компьютера, используя ключ как путь после app_files_local_folder, и смонтирует их в docker-образ, используя значение как путь. Например, ./files/webserver/settings.yaml будет смонтирован как /app/config/settings.local.yaml:ro.

Лицензия

MIT

Информация о авторе

Matic – это коммуникационная платформа, которая связывает кредиторов и заемщиков, оформляющих новый ипотечный кредит. Заемщик теперь знает, на каком этапе находится его заявка и что нужно сделать, чтобы завершить кредит.

О проекте

Download, configure and run rails app container

Установить
ansible-galaxy install matic-insurance/ansible-rails-container
Лицензия
mit
Загрузки
373
Владелец