如何使用nix在堆栈中传递自定义环境变量(如密码?)>

问题描述 投票:1回答:1

我正在使用带有nix的堆栈。我需要通过环境变量作为数据库密码来在运行时连接到Postgres。当前,我在YAML中启用了nix,并自定义了自己的.nix以将密码放入.nix

stack.yaml:

nix:
  enable: true
  pure: true
  shell-file: shell.nix

shell.nix:

{ghc}:
with (import <nixpkgs> {});

haskell.lib.buildStackProject {
  inherit ghc;
  name = "myenv";
  buildInputs = [ postgresql_10 ];
  PGPASSWORD = "pw";
}

但是当我要将代码提交到GitHub / Gitlab并转到CI / CD管道时,在.nix中显式显示密码似乎不好。我想知道有什么好办法解决这个问题吗?

我正在使用带有nix的堆栈。我需要通过环境变量作为数据库密码来在运行时连接到Postgres。目前,我在YAML中启用了nix,并自定义了自己的.nix,以将...

haskell stack nix
1个回答
1
投票

您可以在Nix表达式中使用builtins.getEnv函数来获取来自外部环境的环境变量的值,因此您可以执行以下操作:

© www.soinside.com 2019 - 2024. All rights reserved.