matic-insurance.rails-container

rails-container-app

Statut de construction

Rôle utilisé pour télécharger, configurer et exécuter un conteneur Docker avec une application Rails. Avant de lancer l'application, ce rôle exécute les migrations.

Exigences

Ubuntu 14.04 a été testé.

Ce rôle utilise le module Docker d'Ansible, donc les exigences sont les mêmes.

Variables de rôle

Voici la liste des variables obligatoires avec des valeurs par défaut :

# Image et tag du dépôt Docker
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'

# Nom du conteneur lorsqu'il est en cours d'exécution
app_container_name: 'rails'
# Liste des ports exposés pour le conteneur
app_ports_mapping: []
# Commande à exécuter dans Docker
app_command: 'bundle exec rails s'
# Dictionnaire des variables d'environnement
app_environment_vars: {}
# Fichiers de configuration à déployer sur le serveur et à monter dans l'image
app_configuration_files: {}

Si vous récupérez une image d'un dépôt Docker privé, spécifiez les identifiants Docker :

# Identifiants Docker pour une image privée
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'

Ces variables sont optionnelles et peuvent être modifiées si nécessaire :

# Environnement pour exécuter Rails
app_environment: production
# Dossier contenant tous les fichiers de configuration sur la machine locale
app_files_local_folder: './files'
# Forcer le téléchargement de l'image
app_force_image_pull: true
# Politique de redémarrage du conteneur Docker
app_container_restart_policy: always
# Commande de migration
app_migration_command: 'bundle exec rake db:migrate'
# Limite de mémoire du conteneur
container_memory_limit: 1g

Dépendances

Aucune dépendance

Exemple de Playbook

Le playbook le plus simple peut ressembler à ceci :

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

Ce playbook téléchargera l'image maticinsurace/rails-app:latest, exécutera les migrations bundle exec rake db:migrate et démarrera l'application Rails bundle exec rails s.

Si vous souhaitez spécifier des variables d'environnement supplémentaires :

- 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

Cela exécutera Sidekiq et ajoutera les variables Redis/Postgres.

Si vous souhaitez déployer des fichiers personnalisés sur l'application :

- 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

Cela lira des fichiers depuis la machine locale en utilisant la clé comme chemin après app_files_local_folder et les montera dans l'image Docker en utilisant la valeur comme chemin. Par exemple, ./files/webserver/settings.yaml sera monté comme /app/config/settings.local.yaml:ro.

Licence

MIT

Informations sur l'auteur

Matic est une plateforme de communication qui connecte les prêteurs et les emprunteurs lors de l'origine d'un nouveau prêt immobilier. Un emprunteur sait maintenant où il en est dans le processus de prêt et ce qu'il doit faire pour finaliser le prêt.

À propos du projet

Download, configure and run rails app container

Installer
ansible-galaxy install matic-insurance.rails-container
Licence
mit
Téléchargements
386