matic-insurance.rails-container

rails-container-app

Status budowy

Rola używana do pobierania, konfigurowania i uruchamiania kontenera docker z aplikacją rails. Przed uruchomieniem aplikacji rola wykonuje migracje.

Wymagania

Testowano na Ubuntu 14.04.

Ta rola używa modułu docker Ansible, więc wymagania są takie same.

Zmienne roli

Oto lista wymaganych zmiennych z wartościami domyślnymi:

# Obraz i tag repozytorium Docker
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'

# Nazwa kontenera podczas działania
app_container_name: 'rails'
# Lista portów, które mają być otwarte dla kontenera
app_ports_mapping: []
# Komenda do uruchomienia w dockerze
app_command: 'bundle exec rails s'
# Słownik zmiennych środowiskowych
app_environment_vars: {}
# Pliki konfiguracyjne do wdrożenia na serwerze i zamontowania w obrazie
app_configuration_files: {}

Jeśli pobierasz obraz z prywatnego repozytorium docker - określ dane logowania do docker:

# Dane logowania do prywatnego obrazu Docker
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'

Te zmienne są opcjonalne i można je zmienić w razie potrzeby

# Środowisko do uruchamiania rails
app_environment: production
# Folder z wszystkimi plikami konfiguracyjnymi na lokalnej maszynie
app_files_local_folder: './files'
# Wymuszanie pobrania obrazu
app_force_image_pull: true
# Polityka restartu kontenera Docker
app_container_restart_policy: always
# Komenda migracji
app_migration_command: 'bundle exec rake db:migrate'
# Limit pamięci kontenera
container_memory_limit: 1g

Zależności

Brak zależności

Przykład Playbooka

Najprostszy playbook może wyglądać następująco:

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

Ten playbook pobierze obraz maticinsurace/rails-app:latest, wykona migracje bundle exec rake db:migrate i uruchomi aplikację rails bundle exec rails s.

Jeśli chcesz określić dodatkowe zmienne środowiskowe:

- 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

To wykona sidekiq i doda zmienne redis/postgress.

Jeśli chcesz wdrożyć niestandardowe pliki do aplikacji:

- 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

To odczyta plik z lokalnej maszyny używając klucza jako ścieżki po app_files_local_folder i zamontuje je do obrazu docker używając wartości jako ścieżki. Na przykład ./files/webserver/settings.yaml zostanie zamontowany jako /app/config/settings.local.yaml:ro.

Licencja

MIT

Informacje o autorze

Matic to platforma komunikacyjna, która łączy pożyczkodawców i pożyczkobiorców, umożliwiając zaciąganie nowego kredytu hipotecznego. Pożyczkobiorca wie teraz, na jakim etapie znajduje się proces kredytowy i co musi zrobić, aby go zakończyć.

O projekcie

Download, configure and run rails app container

Zainstaluj
ansible-galaxy install matic-insurance.rails-container
Licencja
mit
Pobrania
386