matic-insurance.rails-container

rails-container-app

Build-Status

Rolle, die verwendet wird, um einen Docker-Container mit einer Rails-App herunterzuladen, zu konfigurieren und auszuführen. Vor dem Ausführen der App wird die Migration durchgeführt.

Anforderungen

Ubuntu 14.04 wurde getestet.

Diese Rolle verwendet das Docker-Modul von Ansible, daher sind die Anforderungen die gleichen.

Rollenvariablen

Hier ist die Liste der erforderlichen Variablen mit Standardwerten:

# Docker-Repository-Bild und Tag
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'

# Name des Containers, wenn er läuft
app_container_name: 'rails'
# Liste der freigegebenen Ports für den Container
app_ports_mapping: []
# Befehl, der in Docker ausgeführt wird
app_command: 'bundle exec rails s'
# Wörterbuch der Umgebungsvariablen
app_environment_vars: {}
# Konfigurationsdateien, die auf dem Server bereitgestellt und in das Bild gemountet werden
app_configuration_files: {}

Wenn Sie das Bild aus einem privaten Docker-Repository ziehen, geben Sie die Docker-Anmeldeinformationen an:

# Docker-Anmeldeinformationen für privates Bild
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'

Diese Variablen sind optional und können bei Bedarf geändert werden

# Umgebung zum Ausführen von Rails
app_environment: production
# Ordner mit allen Konfigurationsdateien auf der lokalen Maschine
app_files_local_folder: './files'
# Bildzugriff erzwingen
app_force_image_pull: true
# Neustartpolitik des Docker-Containers
app_container_restart_policy: always
# Migrationsbefehl
app_migration_command: 'bundle exec rake db:migrate'
# Speicherkapazitätsbeschränkung des Containers
container_memory_limit: 1g

Abhängigkeiten

Keine Abhängigkeiten

Beispiel-Playbook

Das einfachste Playbook kann wie folgt aussehen:

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

Dieses Playbook zieht das Bild maticinsurace/rails-app:latest, führt die Migration bundle exec rake db:migrate und startet die Rails-App bundle exec rails s

Wenn Sie zusätzliche Umgebungsvariablen angeben möchten:

- 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

Dies wird Sidekiq ausführen und die Redis/Postgress-Variablen hinzufügen.

Wenn Sie benutzerdefinierte Dateien für die Bereitstellung an die App haben möchten:

- 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

Dies liest die Datei von der lokalen Maschine und verwendet den Schlüssel als Pfad nach app_files_local_folder und mountet sie in das Docker-Image mit dem Wert als Pfad. Zum Beispiel wird ./files/webserver/settings.yaml als /app/config/settings.local.yaml:ro gemountet.

Lizenz

MIT

Autoreninformation

Matic ist eine Kommunikationsplattform, die Kreditgeber und Kreditnehmer bei der Beantragung eines neuen Hypothekendarlehens verbindet. Ein Kreditnehmer weiß nun, wo er sich im Kreditprozess befindet und was er tun muss, um das Darlehen abzuschließen.

Über das Projekt

Download, configure and run rails app container

Installieren
ansible-galaxy install matic-insurance.rails-container
GitHub Repository
Lizenz
mit
Downloads
386