대부분의 경우 개발 응용 프로그램 구성을 프로젝트의 루트 디렉토리에 다음과 같이 저장합니다.
app
|-- config.json
그러나이 구성은 버전 제어 시스템에 저장되어 사용자 이름, 암호 및 기타 민감한 정보가 유출 될 수 있으므로 최선의 방법은 아닙니다.
12 Factor App 안내서는 구성 파일을 모두 삭제하고 구성 설정에 환경 변수를 사용하도록 권장합니다.
... 환경 변수에 구성을 저장합니다. 환경 변수는 코드를 변경하지 않고 배포간에 쉽게 변경할 수 있습니다. 구성 파일과 달리 실수로 코드를 저장소에 체크인 할 가능성은 거의 없습니다. 사용자 정의 구성 파일 또는 Java 시스템 특성과 같은 기타 구성 메커니즘과 달리 언어 및 OS에 구애받지 않는 표준입니다.
그것은 나에게 정말 좋게 들리지만, 한 곳에서 환경 변수를 소스 제어로 확인하지 않고 어디에 저장 했습니까? 그리고 이러한 변수를 앱에 전달하기 위해 어떤 도구를 사용할 수 있습니까? 수십 가지 구성 옵션이있을 수 있으며 앱을 시작할 때마다 수동으로 입력하는 것이 좋지 않으므로 어딘가에 파일 형식으로 저장해야합니다. 따라서 해당 파일은 소스 제어로 끝나고 시작한 곳으로 돌아갑니다.
소스 제어에 로컬 구성을 저장할 위험이없는 구성 옵션을 처리하는 보편적으로 허용되는 방법이 있습니까?
.gitignore
버전 제어로 체크인해서는 안되는 파일이나 폴더를 정의 할 수 있는 것과 같은 것을 가지고 있습니다. 내가 말한 것처럼 Env vars가 실제로 도움이되는 곳을 알지 못한다면, 스크립트를 설정하고 프로젝트와 함께 저장해야하거나 시스템 (홈 디렉토리 또는 컴퓨터 시작시)에 '어딘가'가 있어야합니다 스크립트)), 특히 많은 구성이 필요한 경우 자체적으로 많은 문제를 일으키는 것으로 보입니다. 어쨌든 기밀 정보가 다른 파일로 이동하도록 구성 파일을 분할합니다.