matic-insurance.rails-container
rails-container-app
このロールは、Railsアプリを持つDockerコンテナをダウンロード、構成、実行するために使用されます。アプリの実行前にマイグレーションを実行します。
要件
Ubuntu 14.04でテストされています。
このロールはAnsibleのDockerモジュールを使用しますので、要件はこちらと同じです。
ロール変数
こちらは必要な変数のリストとデフォルト値です:
# Dockerリポジトリのイメージとタグ
app_docker_image: 'alpine'
app_docker_image_tag: 'latest'
# 実行中のコンテナの名前
app_container_name: 'rails'
# コンテナのための公開ポートのリスト
app_ports_mapping: []
# Dockerで実行するコマンド
app_command: 'bundle exec rails s'
# 環境変数の辞書
app_environment_vars: {}
# サーバーにデプロイする設定ファイル
app_configuration_files: {}
プライベートDockerリポジトリからイメージをプルする場合は、Dockerの認証情報を指定してください:
# プライベートイメージのDocker認証情報
app_docker_login: 'login'
app_docker_password: 'password'
app_docker_email: 'email'
これらの変数はオプションで、必要に応じて変更できます。
# Railsを実行する環境
app_environment: production
# ローカルマシンのすべての設定ファイルがあるフォルダー
app_files_local_folder: './files'
# イメージの強制プル
app_force_image_pull: true
# Dockerコンテナの再起動ポリシー
app_container_restart_policy: always
# マイグレーションコマンド
app_migration_command: 'bundle exec rake db:migrate'
# コンテナのメモリ制限
container_memory_limit: 1g
依存関係
依存関係はありません。
例のプレイブック
最も簡単なプレイブックは以下のようになります:
- hosts: webservers
roles:
- role: rails-container-app
app_docker_image: 'maticinsurace/rails-app'
app_docker_tag: 'latest'
app_ports_mapping: ['3000:3000']
このプレイブックは、イメージ maticinsurace/rails-app:latest
をプルし、
マイグレーション bundle exec rake db:migrate
を実行し、Railsアプリ bundle exec rails s
を開始します。
追加の環境変数を指定したい場合は:
- 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
これにより、sidekiqを実行し、Redis/Postgresの変数が追加されます。
アプリにデプロイするカスタムファイルを指定したい場合は:
- 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
これにより、ローカルマシンからファイルを読み込む際に、app_files_local_folder
の後にパスとしてキーを使用し、値をパスとしてDockerイメージにマウントします。例として、./files/webserver/settings.yaml
は /app/config/settings.local.yaml:ro
としてマウントされます。
ライセンス
MIT
著者情報
Maticは、貸し手と借り手を繋ぐコミュニケーションプラットフォームで、新しい住宅ローンの形成をサポートします。借り手は、ローンプロセスのどの段階にいるか、ローンを完了するために何をする必要があるかを把握できます。
Download, configure and run rails app container
ansible-galaxy install matic-insurance.rails-container