Mina: ๋ณ€์ˆ˜๋ฅผ ENVํ•˜๋Š” ๋ฐฉ๋ฒ•

์— ๋งŒ๋“  2012๋…„ 10์›” 30์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: mina-deploy/mina

์€ Gemfile ๋ผ์ธ์ž…๋‹ˆ๋‹ค

gem '์Šคํ”„๋ ˆ์ด', '1.2.0', :git => "https://#{ENV['GUSER']}:#{ENV['GPASS']}@bitbucket.org/constella/spree.git" , :๊ฐ€์ง€ => "1-2-์•ˆ์ •"

๋ณ€์ˆ˜ GUSER ๋ฐ GPASS๋ฅผ ์–ด๋–ป๊ฒŒ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์„œ๋ฒ„์˜ .bashrc - ์•„๋‹˜
์„œ๋ฒ„์˜ .profile - ์•„๋‹˜
๋Œ€๊ธฐ ์ค„! ๋ฐฐํฌ์—์„œ "export GUSER=memo" - ์•„๋‹ˆ์š”

Gemfile์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค.
* https://:@bitbucket.org/constella/spree.git (at 1-2-stable) ๋ถ€ํ„ฐ no specified source ๊นŒ์ง€

์˜ค๋ฅ˜: ๋ฐฐํฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@rstacruz

task :env do ์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ์ญค๋ด๋„ ๋ ๊นŒ์š”? ๋ช…๋ น์— ENV ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด set :bundle_prefix ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  10 ๋Œ“๊ธ€

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ๋ช…๋ น ๊ฐ„์— ๊ณต์œ ๋˜๋Š” ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด environment_variables ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

bundle_bin ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

set :bundle_bin, 'GUSER=xxx GPASS=yyy bundle'

set :bundle_bin, 'GUSER=xxx GPASS=yyy ๋ฒˆ๋“ค'

๊ดœ์ฐฎ์•„!!!! ๊ฐ์‚ฌ ํ•ด์š”

๋…ธ๋ ฅํ•˜๋‹ค:

์ž‘์—… : ํ™˜๊ฒฝ
๋Œ€๊ธฐ์—ด %[NAME="hello"]
๋

2012๋…„ 10์›” 30์ผ ์˜คํ›„ 6์‹œ 11๋ถ„, Simon COURTOIS [email protected]
์ผ๋‹ค:

๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณ€์ˆ˜๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด environment_variables๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๋ฐฐํฌํ•˜๋Š” ๋™์•ˆ ๋ช…๋ น ๊ฐ„์— ๊ณต์œ ๋ฉ๋‹ˆ๋‹ค.

โ€”
์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ ๋‹ค์Œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.
๊ธฐ tHubhttps://github.com/nadarei/mina/issues/65#issuecomment -9900324.

์•ž์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

task :env do
   queue %[NAME="hello"]
end

๋˜ํ•œ ๋Œ€์‹  .bashrc ์— ๋„ฃ์œผ๋ ค๋ฉด(IMHO๊ฐ€ ํ›จ์”ฌ ๋” ๋‚˜์€ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค!) export ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

# .bashrc
export NAME="hello"

์•„์ง ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์˜ต์…˜์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ๊ฒจ์ง€์‹ญ๋‹ˆ๊นŒ? ์ข‹์€ ์Šฌํ””! ๊ธ€์Ž„, ๋‚˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ด๊ฒƒ์„ ํฌํฌํ•˜๊ณ  env-var ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๋•Œ๊นŒ์ง€ ์šฐ๋ฆฌ๋Š” ํฐ ์‹œ๊ฐ„ ํ•ดํ‚น์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณ€์ˆ˜๋ฅผ .env ํŒŒ์ผ์— ๋กœ์ปฌ๋กœ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ๋„ฃ์€ ์„ค์ • ์•„๋ž˜:

# Non-cowboys, don't try this in production.
set :ssh_options, %{export #{File.open(".env").readlines.map(&:chomp).join(" ")}}

์š”์ ์„ ํŒŒ์•…ํ•˜๊ณ  ์Šค์Šค๋กœ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ฐฐํฌ๋ฅผ Heroku-tizeํ•˜๋Š” ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฆ๊ฑฐ์šด ํ•ดํ‚น,
์ตœ์ƒ์˜.
ํ…Œ๋“œ

๋‚˜๋Š” ํ”ผ๊ฐ€๋กœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

'yaml'์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค

set :var_from_env, -> { YAML.load_file("./config/application.yml")["ENV_VAR"] }

@rstacruz

task :env do ์— ๋Œ€ํ•œ ๋ฌธ์„œ๊ฐ€ ์žˆ๋Š”์ง€ ์—ฌ์ญค๋ด๋„ ๋ ๊นŒ์š”? ๋ช…๋ น์— ENV ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด set :bundle_prefix ๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

@luralala ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค, ๊ทธ๊ฒƒ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์—ˆ์Šต๋‹ˆ๋‹ค!

๋‹ค์Œ๊ณผ ๊ฐ™์ด bundle_prefix๋ฅผ ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

set :bundle_prefix, 'env $(cat .env | xargs) bundle exec '

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰