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
ライセンス
mit
ダウンロード
386