fzngagan
(Faizaan Gagan)
1
GitHub - googleapis/google-auth-library-ruby: Google Auth Library for Ruby · GitHub 와 같은 일부 클라이언트 라이브러리는 인증 자격 증명을 환경 변수로 설정해야 합니다. yml 파일을 통해 이를 전달할 수 있을까요?
다음과 시도해 보았습니다.
- yml 파일의 커스텀 명령 섹션에
export VAR=VALUE 추가.
- yml의
env 섹션에 VARIABLE: VALUE 추가.
fzngagan
(Faizaan Gagan)
2
@merefield 님이 실제로 가능하다고 알려주셨습니다.
커스텀 커맨드 섹션에서 다음을 수행하세요.
# 변수를 .bashrc 파일에 추가합니다
exec: echo 'export VAR=value' >> ~/.bashrc
...
# 파일을 다시 로드합니다
exec: source ~/.bashrc
이 방식이 실제로 작동한다는 것을 확인했습니다. 
p.s.
어떤 이유로 source ~/.bashrc가 환경을 업데이트하지 않습니다. 너무 일찍 호출되고 있는 것 같습니다.
또한 다음도 시도해 보았지만,
- exec: /bin/bash -c "source ~/.bashrc"
justin
(Justin DiRose)
3
컨테이너 정의의 env: 섹션을 이 용도로 사용할 수 있지 않나요? 그러면 Rails 앱이 접근할 수 있는 환경 변수가 생성되어야 합니다.
예를 들어
env:
CUSTOM_ENV: "value"
그렇지 않으면 pups가 이미 호스트의 환경 변수를 파이프 처리하고 있는 것 같습니다.
fzngagan
(Faizaan Gagan)
4
그렇게 하면 docker 관련 오류가 발생합니다. 그렇게 작동한다면 매우 직관적이었을 텐데 말이죠.
아니면 제가 미친 건지도 모르겠네요. DISCOURSE_로 시작하는 사용자 정의 변수를 허용하는 규칙이 있는 것 같습니다.
fzngagan
(Faizaan Gagan)
5
내일 책상 앞에 앉으면 env 관련해서 한 번 더 시도해 볼게.
fzngagan
(Faizaan Gagan)
6
아, 제가 미쳤었네요. 지금은 잘 작동합니다. 문제는 여러 줄 값 때문에 발생했었어요. 해당 값을 제거하니 빌드가 성공했습니다. 그런데 여러 줄 값을 어떻게 사용해야 할까요?
fzngagan
(Faizaan Gagan)
7
오, 결국 해결했어요. 문제는 RSA 개인 키를 환경 변수로 사용하던 것이었거든요. 이렇게 하면 작동합니다.
키를 싱글쿼트 '로 감싸고, 키에 포함된 모든 \n 앞에 \를 하나 더 추가하세요. 즉, \n은 \\n이 됩니다.
참고로, 모든 \n을 직접 수정하는 것보다 더 쉬운 방법이 있습니다.
아래와 같은 방식으로 작성할 수 있습니다:
key: |
---BEGIN SECRET KEY---
SHH do not read this is secret
---END SECRET KEY---
fzngagan
(Faizaan Gagan)
9
키의 중간 부분을 그대로 붙여넣으라는 말씀인가요? 그렇게 하는 것이 좀 더 깔끔할 것 같습니다.
즉, | 문자(그리고 선택적 변형)로 시작하면 yml 파일에서 멀티라인을 지원한다는 뜻입니다.
이렇게 하면 접두 공백을 제외하고 키를 그대로 붙여넣을 수 있습니다.
fzngagan
(Faizaan Gagan)
11
나는 좀 멍청한 시도를 해 보았습니다. 각 \n 대신 |와 실제 줄바꿈을 추가했는데, 작동하지 않았습니다.