Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
10
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@kawasima

環境切り替え方法便覧

環境の切り替えを、各フレームワークでどうするかをまとめてみます。
http://12factor.net/ja/config をどう実現するか考えるため。

Ruby on Rails

環境変数またはコマンドライン引数"RAILS_ENV"で指定する。

デフォルトで用意されている環境の種類は以下のとおり。

  • development
  • test
  • production

デフォルトはdevelopment

Sinatra

環境変数"RACK_ENV"で指定する。

デフォルトで用意されている環境の種類はRailsと同じ。デフォルトの環境がdevelopmentなのもRailsと同じ。

express

環境変数"NODE_ENV"で指定する。

デフォルトで用意されている環境の種類はRailsと同じ。デフォルトの環境がdevelopmentなのもRailsと同じ。

Spring Boot

下記どこかで指定した"SPRING_PROFILES_ACTIVE"が使われる。

  1. Command line arguments.
  2. Properties from SPRING_APPLICATION_JSON (inline JSON embedded in an environment variable or system property)
  3. JNDI attributes from java:comp/env.
  4. Java System properties (System.getProperties()).
  5. OS environment variables.
  6. A RandomValuePropertySource that only has properties in random.*.
  7. Profile-specific application properties outside of your packaged jar (application-{profile}.properties and YAML variants)
  8. Profile-specific application properties packaged inside your jar (application-{profile}.properties and YAML variants)
  9. Application properties outside of your packaged jar (application.properties and YAML variants).
  10. Application properties packaged inside your jar (application.properties and YAML variants).
  11. @PropertySource annotations on your @Configuration classes.
  12. Default properties (specified using SpringApplication.setDefaultProperties).

デフォルトのプロファイルはdefault。慣例としてプロファイルは、application.properties(またはYAML)でそれごとにファイルを作る。

Seasar2

クラスパスに含まれる/env.txtで指定する。

デフォルトで用意されている環境の種類は以下のとおり。

  • ut: 単体テスト環境
  • ct: 結合テスト環境
  • it: 統合テスト環境
  • production: 本番環境

デフォルト(env.txtがない場合)の環境は、productionである。

Leiningen

leinコマンドの引数で使う(使わない)プロファイルを指定する。複数のプロファイルを重ね合わせることができる(Mavenからの思想継承)

lein with-profile 1.3 test :database

デフォルトでActiveになるプロファイルは以下のとおり。

  • :base
  • :system - providedスコープの依存ライブラリをクラスパスに含める
  • :user - ユーザごとの設定
  • :provided - providedスコープの依存ライブラリをクラスパスに含める
  • :dev

environ (clojure)

  • 12 Factor Appにしたがうように、環境変数から値をとるためのライブラリ。
  • Spring Bootと同じように、システムプロパティやファイルでも指定可能。
  • 同作者のductフレームワークみると、結局設定のグルーピングはやっている。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
10
Help us understand the problem. What are the problem?