fzngagan
(Faizaan Gagan)
Setembro 2, 2020, 12:20pm
1
Algumas bibliotecas de cliente, como GitHub - googleapis/google-auth-library-ruby: Google Auth Library for Ruby · GitHub , exigem que as credenciais de autenticação sejam definidas como variáveis de ambiente. É possível passá-las por meio do arquivo yml?
Tentei:
Adicionar export VAR=VALUE à seção de comandos personalizados do arquivo yml.
Adicionar VARIABLE: VALUE à seção env do arquivo yml.
fzngagan
(Faizaan Gagan)
Setembro 2, 2020, 1:32pm
2
@merefield apontou para mim que é de fato possível.
Na seção de comandos personalizados, faça:
# adiciona a variável ao arquivo .bashrc
exec: echo 'export VAR=value' >> ~/.bashrc
...
# recarrega o arquivo
exec: source ~/.bashrc
Posso confirmar que essa abordagem realmente funciona.
P.S.
De alguma forma, o source ~/.bashrc não atualiza o ambiente. Talvez esteja sendo chamado muito cedo.
Também tentei:
- exec: /bin/bash -c "source ~/.bashrc"
justin
(Justin DiRose)
Setembro 2, 2020, 4:28pm
3
Você não pode usar a seção env: da definição do container para isso? Isso deve criar uma variável de ambiente que o aplicativo Rails pode acessar.
Então, algo assim:
env:
CUSTOM_ENV: "valor"
Caso contrário, parece que o pups já injeta variáveis de ambiente do host , também.
fzngagan
(Faizaan Gagan)
Setembro 2, 2020, 4:41pm
4
Isso me dá um erro relacionado ao Docker. Seria muito intuitivo se funcionasse assim. Ou estou maluco. Acredito que exista uma regra para aceitar variáveis personalizadas que começam com DISCOURSE_.
fzngagan
(Faizaan Gagan)
Setembro 2, 2020, 5:00pm
5
Vou tentar a questão do env mais uma vez quando chegar à minha mesa amanhã.
fzngagan
(Faizaan Gagan)
Setembro 2, 2020, 6:02pm
6
Então, eu estava louco. Isso funciona bem. O problema era devido a um valor de várias linhas. Removi-o e a build foi bem-sucedida. Mas a pergunta é: como usar valores de várias linhas?
fzngagan
(Faizaan Gagan)
Setembro 3, 2020, 9:24pm
7
Yuhoo, consegui fazer funcionar. O problema era que eu estava usando uma chave privada RSA como variável de ambiente. É isso que precisa ser feito para que isso funcione.
Envolva sua chave em aspas simples '' e adicione uma barra invertida \ extra a todos os \n que aparecem na chave. Ou seja, \n se tornaria \\n.
Só para avisar, existem maneiras mais fáceis de fazer isso do que atualizar todos os \n diretamente.
Algo assim:
key: |
---BEGIN SECRET KEY---
SHH não leia isso é secreto
---END SECRET KEY---
fzngagan
(Faizaan Gagan)
Setembro 3, 2020, 10:49pm
9
featheredtoast:
Algo assim:
Você quer dizer colar a parte central da chave como está? Isso seria um pouco mais limpo.
Quero dizer que o YAML suporta múltiplas linhas começando com o caractere | (e variações opcionais)
Você pode então colar a chave exatamente como está, sem edições (exceto espaços prefixados).
fzngagan
(Faizaan Gagan)
Setembro 3, 2020, 10:53pm
11
Tentei algo bobo: adicionei | e uma quebra de linha real no lugar de cada \n, o que não funcionou.