私はHerokuでホストされているRailsプロジェクトPROJECTXを持っています。プロダクション設定とファイルを保存するために、別のリポジトリを使用していますPROJECTX-config。それはすることが可能である:Herokuでのデプロイ時にリポジトリをクローズする
- クローンPROJECTX-config設定、
- PROJECTX-config設定ファイルに、これは上で行わなければならないこと
注意を
ありがとうございます!
私はHerokuでホストされているRailsプロジェクトPROJECTXを持っています。プロダクション設定とファイルを保存するために、別のリポジトリを使用していますPROJECTX-config。それはすることが可能である:Herokuでのデプロイ時にリポジトリをクローズする
注意を
ありがとうございます!
不可能です。
各dynoは、最後に展開されたコード の新鮮なコピーで、独自の一時ファイルシステムを取得します。 dynoの稼働中に実行中の プロセスはファイルシステムを一時的なスクラッチパッドとして使用できますが、書き込まれたファイルは は他のdynoのプロセスには表示されず、 はdynoが停止したときに破棄されるかまたは を再起動します。たとえば、これは、 のアプリケーション展開のためにdynoが置き換えられ、通常の dyno管理の一部として1日に約1回のためにいつでも発生します。
- レポAとレポBをマージし、Herokuのに結果をプッシュする(ポストコミットフックのような)セットアップの自動化のいくつかの種類をsetupeなどのルーブ・ゴールドバーグ・マシンなしhttps://devcenter.heroku.com/articles/dynos#ephemeral-filesystem
あるいは、少なくともではありません。
また、私はファイルを維持するのではなく維持するのが面倒なので、環境変数にはappの設定を含めないでください。
ここではHerokuは同意しません。ある種のプロパティファイルに -
varsは、このような設定を処理するための従来のアプローチは、ソースの下で彼らに を置くことです。これは エラーが発生しやすいプロセスです。特に、オープンソース アプリでは、アプリケーション固有のコンフィグレーション で別々の(およびプライベート)ブランチを維持する必要があります。
より良い解決策は、環境変数 を使用して、コードからキーを離しておくことです。従来のホストでは、ローカルで作業している では、bashrcファイルに環境変数を設定できます。 Herokuでは、config varsを使用しています。 https://devcenter.heroku.com/articles/config-vars
あなたが実際にENVのVARSに格納するために必要なもの過大評価されるかもしれないが - 。あなたはENVにAPIキーのような秘密を保存する必要があります。
他の秘密の設定では、さまざまな宝石の設定をconfig/initializers
に設定する必要があります。
require 'yaml'
yaml = YAML.load_file(File.join(__dir__, 'conf.yml'))
def create_key(*components)
components.join('_').upcase
end
env_vars = yaml["production"].each_with_object({}) do |(key,value), memo|
key_components = [key]
if value.kind_of? Hash
value.each_pair do |k,v|
memo[create_key(*key_components.dup.push(k))] = v
end
else
memo[create_key(*key_components)] = value
end
end.each do |k,v|
system("heroku config:set #{k}=#{v}")
puts "Setting #{k} = #{v}; #{ $? }"
end
それともあなたもシリアライズ形式(JSONやYAML)での保存ができます
それでもGUIを使用して考える場合
はvarsのあなたが解析し、ENVを設定するために使用している恐ろしいが、その後、YAMLファイルを使用することです単一のenv var - 32kbの合計サイズ制限があります。
いいえ - 代わりにenv varsを使用してください。 Herokuは一時的なファイルシステムを持っているので、他のリポジトリとシンボリックリンクすることはできません。 – max
@maxすべての設定に環境変数を使用することはできません。また、私はファイルを維持するのではなく維持するのが面倒なので、appの設定はenvoroment変数に存在すべきではないと考えています。 –