Mina: Como fazer variáveis ​​de ENV

Criado em 30 out. 2012  ·  10Comentários  ·  Fonte: mina-deploy/mina

é a linha Gemfile

gem 'spree', '1.2.0', :git => "https://#{ENV['GUSER']}:#{ENV['GPASS']}@bitbucket.org/constella/spree.git" , :branch => "1-2-estável"

como posso definir a variável GUSER e GPASS?

.bashrc no servidor - não
.profile no servidor - não
fila! "exportar GUSER=memo" na implantação - não

Você mudou no Gemfile:
* farra de https://:@bitbucket.org/constella/spree.git (at 1-2-stable) a no specified source

ERRO: Falha na implantação.

Comentários muito úteis

@rstacruz

Posso perguntar se há um doc para task :env do ? Ele não anexa a configuração ENV no comando.

Eu usei set :bundle_prefix para conseguir isso.

Todos 10 comentários

Concordo, um environment_variables deve estar disponível para fornecer variáveis ​​compartilhadas entre comandos durante a implantação.

Talvez você possa definir a variável bundle_bin para adicionar as variáveis ​​de ambiente:

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

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

isso é bom!!!! Obrigado

Experimentar:

tarefa :env fazer
fila %[NAME="hello"]
fim

Em 30 de outubro de 2012, às 18h11, Simon COURTOIS [email protected]
escreveu:

Eu concordo, um ambiente_variáveis ​​deve estar disponível para fornecer variáveis
compartilhado entre comandos durante a implantação.


Responda a este e-mail diretamente ou visualize-o em
Gi tHubhttps://github.com/nadarei/mina/issues/65#issuecomment -9900324.

Como dito anteriormente, isso deve funcionar:

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

Além disso, se você quiser colocá-lo em .bashrc (IMHO uma ideia muito melhor!), você deve export as variáveis:

# .bashrc
export NAME="hello"

Você acredita que ainda não existe uma opção de variável de ambiente? Deus luto! Bem, acho que podemos bifurcar essa coisa e adicionar uma opção env-var, mas até então estamos usando um grande hack.

Armazenamos nossas variáveis ​​localmente em um arquivo .env

nas configurações, colocamos:

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

Você obtém a essência e pode torná-lo bonito você mesmo. Esta é uma maneira de Heroku-tizar nossa implantação.

Feliz hack,
Melhor.
Ted

eu uso o Figaro

requer 'yaml'

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

@rstacruz

Posso perguntar se há um doc para task :env do ? Ele não anexa a configuração ENV no comando.

Eu usei set :bundle_prefix para conseguir isso.

@lulalala obrigado, funcionou para mim!

Eu defino bundle_prefix assim:

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

Esta página foi útil?
0 / 5 - 0 avaliações