matic-insurance.rails-container
rails-container-app
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.
Download, configure and run rails app container
ansible-galaxy install matic-insurance.rails-container