【zsh】direnv로 환경 변수 관리 【초보자】

데이터베이스 환경 변수 관리 및 관리



안녕하세요 여러분 안녕하세요!
필자는 현재 rails로 웹 애플리케이션을 작성하고 있습니다만,
우리는 데이터베이스의 환경 변수를 정의 할 때 유용하게 사용할 수있는 것을 찾았습니다.
거기서 찾아낸 것이 direnv(GitHub: 기주 b. 코 m / 오렌 v / 오렌 v )라는 환경 변수 관리 툴입니다!
이번에는 direnv를 사용하여 쉽게 할 수있는 환경 변수 정의를 소개합니다

전제 조건



OS: MacOS, Catalina(버전 10.15.7)
패키지 설치 프로그램: Homebrew
버전 관리: git

direnv 설치



패키지 설치 프로그램으로 Homebrew를 사용하고 있으므로,
터미널 (zsh)에서 다음 명령을 실행하기 만하면됩니다
brew install direnv
덧붙여 필자가 Mac을 구입했을 때에는 이미 zsh가 표준으로 설정되어 있었으므로,
bash에서 전환할 필요가 없었습니다!

zsh 이외의 설치 방법은 여기 에서

후크



direnv를 제대로 사용하려면 쉘 스크립트로 hook해야 할 것 같습니다.
일단 훅을 설정하면 쉘을 다시 시작하면 direnv가 활성화됩니다!

vim을 사용하여 .zshrc 파일을 편집합니다. 다음 명령을 실행합니다 vi ~/.zshrc
그런 다음 파일의 끝 부분에 다음과 같은 문장을 추가하고 저장합니다.

.zshrc
eval "$(direnv hook zsh)"

무엇을 하고 있는가


  • eval "$変数名" : 변수의 내용을 명령으로 쉘에 실행시킨다
  • 쉘 스크립트로 후크 : 명령 결과 등을 얻는 방법 (요구 사항)

  • 파일 편집



    config 아래의 다음 파일을 편집합니다!

    database.yml
    username: <%= ENV['DB_USERNAME'] %>
    password: <%= ENV['DB_PASSWORD'] %>
    
    touch .envrc에서 새 .envrc 파일을 만들고 다음과 같이 편집합니다.

    .envrc
    export DB_USERNAME=ログイン名
    export DB_PASSWORD=パスワード
    

    또한 다음 명령을 실행합니다 (실행하지 않으면 오류가 발생했습니다).direnv allow
    터미널을 다시 시작하고,
    작업 디렉토리로 이동했을 때에 다음과 같은 로그가 흐르면 설정은 성공입니다!

    터미널(zsh)
    direnv: loading ~/(作業ディレクトリ)/.envrc                                                                                                                                           
    direnv: export +DB_PASSWORD +DB_USERNAME
    

    .gitignore에 .zshrc 추가



    이 경우 git에 .zshrc 파일이 반영됩니다.
    모처럼 환경 변수를 설정해도 의미가 없어져 버리므로,
    .gitignore 파일에 .zshrc를 추가하세요!

    끝에



    끝까지 봐 주셔서 감사합니다.
    쉘 스크립트는 매우 편리합니다
    별칭 등도 간단하게 설정할 수 있으므로,
    Docker를 사용할 때도 효율화를 위해 도입하고 싶습니다!

    필자는 쉘 초보자이므로, 잘못된 기재 등 있으면 지적해 주시면 다행입니다.
    그럼 또 어딘가에!

    참고로 한 사이트



    Mac에서 환경 변수를 관리하기 위해 direnv를 설정하는 방법
    【eval】명령 - 문자열을 평가, 연결하여 실행

    좋은 웹페이지 즐겨찾기