안녕하세요.
yaml 관련 질문이긴 하지만, 여기 전문가분들이 아실 것 같아서 여쭤봅니다.
빌드 시점에 OS(bash) 자체의 변수를 파라미터/변수로 대체할 수 있을까요?
예를 들어…
host: /APPOW/log/${HOSTNAME}/discourse.test
이렇게 하면 기본적으로 동작할 거라고 기대했는데, 제 환경에서는 작동하지 않았습니다. 감사합니다.
감사합니다. 아니요, 제가 일시적으로 시력을 잃은 게 아니라면 - 가능은 하지만 - 제 질문에 대한 답변이 아닙니다. 그렇죠?
제가 이야기하는 것은 OS의 환경 변수, 즉 YAML에서 값이 해석되는 셸 변수입니다. 다시 말하지만, 이 변수들은 호스트의 셸에서 설정된 것이지 .yml 파일에는 존재하지 않습니다.
아니요.
실행 시점에는 설정할 수 있지만, 빌드 시점에는 불가능합니다.
빌드 시점에 yaml의 ENV를 대체하는 것으로 달성하고자 하는 것은 무엇인가요?
이런 작은 조절들은 스케일업 시, 조금이라도 도움이 되는 작은 구원자입니다.
위 예제가 가장 잘 보여줍니다 – yaml을 매번 build할 때마다 다른 환경 / 다른 호스트에서 "수정"할 필요가 없으니까요.
검색을 해봤는데 YAML에서 그런 단순 치환이 작동한다고 주장하는 예시들을 봤지만, 저는 어떻게 해도 작동하지 않습니다.
그 런서가 해당 ENV 변수를 대체할 것이라고 생각하지 않습니다. 이미지를 빌드한 후, 서로 다른 도메인 이름으로 같은 이미지를 여러 번 시작할 수 있습니다. 시작에 필요한 ENV를 확인하려면 다음을 실행하세요.
./launcher start-cmd app
부트스트랩이 완료되지 않은 호스트에서 이를 수행하려면 데이터베이스를 마이그레이션하고 에셋을 사전 컴파일해야 합니다.
만약 그렇게 된다면, 향후 런처 버전에서 아주 좋은 개선 사항이 될 것입니다.