2015-01-14 3 views
1

포먼 보석을 사용할 때 .env 파일을 포함하여 내 개발 환경에 다른 환경 변수를 지정합니다.포먼을 사용할 때 개발 env 변수 처리

그러나 프로젝트에서 다른 개발자와 공동 작업 할 때 Twilio 및 Pusher와 같은 서비스의 자격 증명을 소스 제어로 확인하지 않고 .env 파일을 서로 동기화하는 좋은 방법은 무엇입니까?

현재 우리는 필요한 키를 지정하는 루트에 업데이트 된 README.md를 보관하고 있지만 모든 추가시 추가 정보를 살펴 보는 것은 추가 작업입니다.

답변

0

우리는 (우리는이 문제를 해결하지 못했지만 지금 당분간 팀을 사용하고 있습니다.) env 하위 디렉토리가 있습니다. env에는 DATABASE_URI 또는 MY_ENV_KEY 또는 기타 필요한 파일이 있으며 그 값은 환경 변수를 설정해야하는 값입니다.

그런 다음 우리는 우리가 포먼의 procfile에서 호출 start_server.sh라는 스크립트가 있습니다

#!/bin/bash 

for env_file in `pwd`/env/*; 
do 
    name_of_var=`basename $env_file` 
    get_val_of_var_cmd='echo "$'$name_of_var'"' 
    val_of_var=`eval "$get_val_of_var_cmd"` 

    if [[ "$val_of_var" == "" ]]; 
    then 
    val_of_var=`cat $env_file` 
    cmd="export $name_of_var='$val_of_var'" 
    echo "Setting $name_of_var=$val_of_var" 
    eval $cmd 
    else 
    echo "Using $name_of_var=$val_of_var" 
    fi 
done 

exec bundle exec unicorn $* 

env 디렉토리와 그 안에있는 파일을 소스 제어에 추가 할 수 있습니다.

+0

응답 해 주셔서 감사합니다. 나는 15 표를 얻지 못했기 때문에 아직 투표 할 수는 없지만 내가 할 때 반드시 돌아올 것입니다. –

0

질문을 한 후 John Resig의 동료 인 Craig Silverstein이 작성한 팁에 대해 알아 보았습니다.

http://ejohn.org/blog/keeping-passwords-in-source-control/

대신 그러나 소스 제어에 키를 암호화, 나는 빈 값을 포함하는 더미 키 파일을 생성하고, 내 공동 작업자 실제 키를 안전한 곳으로 만 접근 가능한 저장 자신의 원래의 솔루션을 선택합니다.