使用 direnv 库为每个项目创建独立的环境变量

10 min read

在 macOS 上,可以使用 direnv 库为每个项目创建独立的环境变量,从而确保项目之间的环境变量互不干扰。

首先,需要安装 direnv。使用 Homebrew 安装 direnv

brew install direnv

接下来,将 direnv 集成到您的 shell 中。根据您使用的 shell,将以下内容添加到配置文件(如 ~/.bashrc~/.zshrc~/.config/fish/config.fish)中:

  • 对于 Bash:

    eval "$(direnv hook bash)"
    
  • 对于 Zsh:

    eval "$(direnv hook zsh)"
    
  • 对于 Fish:

    eval (direnv hook fish)
    

保存更改并重新启动 shell,以应用更新。

现在,进入项目目录并创建一个名为 .envrc 的文件。在这个文件中,可以为当前项目设置特定的环境变量。例如,为项目设置 DOCKER_REGISTRY_PASSWORD 环境变量:

export DOCKER_REGISTRY_PASSWORD=your_password

请确保将 your_password 替换为您实际的密码。

在项目目录中运行 direnv allow 命令,以允许 direnv 加载 .envrc 文件。这样,在您进入项目目录时,direnv 会自动设置这些环境变量。当您离开项目目录时,direnv 会自动取消设置这些环境变量,从而确保不同项目之间的环境变量互不干扰。

每当您需要在 .envrc 文件中添加或修改环境变量时,都需要重新运行 direnv allow 命令。

现在,您可以在项目中运行之前创建的脚本,它将使用 .envrc 文件中设置的 DOCKER_REGISTRY_PASSWORD 环境变量。