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