matic-insurance.rails-container

rails-container-app

Estado de Construcción

Rol utilizado para descargar, configurar y ejecutar un contenedor docker con una aplicación Rails. Antes de ejecutar la aplicación, el rol realiza las migraciones.

Requisitos

Se ha probado en Ubuntu 14.04.

Este rol utiliza el módulo docker de Ansible, por lo que los requisitos son los mismos.

Variables del Rol

Aquí está la lista de variables requeridas con valores predeterminados:

# Imagen y etiqueta del repositorio de Docker
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'

# Nombre del contenedor cuando está en ejecución
app_container_name: 'rails'
# Lista de puertos expuestos para el contenedor
app_ports_mapping: []
# Comando para ejecutar en Docker
app_command: 'bundle exec rails s'
# Diccionario de variables de entorno
app_environment_vars: {}
# Archivos de configuración para implementar en el servidor y montar en la imagen
app_configuration_files: {}

Si estás extrayendo la imagen de un repositorio privado de Docker, especifica las credenciales de Docker:

# Credenciales de Docker para imagen privada
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'

Estas variables son opcionales y se pueden cambiar si es necesario:

# Entorno para ejecutar Rails
app_environment: production
# Carpeta con todos los archivos de configuración en la máquina local
app_files_local_folder: './files'
# Forzar extracción de imagen
app_force_image_pull: true
# Política de reinicio del contenedor Docker
app_container_restart_policy: always
# Comando de migración
app_migration_command: 'bundle exec rake db:migrate'
# Límite de memoria del contenedor
container_memory_limit: 1g

Dependencias

Sin dependencias

Ejemplo de Playbook

El playbook más simple puede ser el siguiente:

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

Este playbook extraerá la imagen maticinsurace/rails-app:latest, ejecutará migraciones bundle exec rake db:migrate y comenzará la aplicación Rails bundle exec rails s.

Si quieres especificar variables de entorno adicionales:

- 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

Esto ejecutará sidekiq y añadirá las variables de redis/postgress.

Si deseas que archivos personalizados se implementen en la aplicación:

- 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

Esto leerá el archivo de la máquina local usando la clave como ruta después de app_files_local_folder y los montará en la imagen de Docker usando el valor como ruta. Por ejemplo, ./files/webserver/settings.yaml se montará como /app/config/settings.local.yaml:ro.

Licencia

MIT

Información del Autor

Matic es una plataforma de comunicación que conecta a prestamistas y prestatarios para la obtención de un nuevo préstamo hipotecario. Ahora, un prestatario sabe en qué parte del proceso de préstamo se encuentra y qué necesita hacer para completar el préstamo.

Acerca del proyecto

Download, configure and run rails app container

Instalar
ansible-galaxy install matic-insurance.rails-container
Licencia
mit
Descargas
386