【问题标题】:Using GitHub Codespaces secrets in devcontainer.json在 devcontainer.json 中使用 GitHub Codespaces 机密
【发布时间】:2022-08-05 18:03:27
【问题描述】:

问题

我使用的一些library 需要区分大小写的环境变量QXToken。 当我创建 codespaces secret 时,环境变量只能以大写字母 (QXTOKEN) 使用,因为机密不区分大小写。因此,我想将存储在QXTOKEN 中的秘密复制到环境变量QXToken

我试图在devcontainer.json 中做到这一点:

{
    ...

    \"remoteEnv\": {
        \"QXAuthURL\": \"https://auth.quantum-computing.ibm.com/api\",
        \"QXToken\": \"${secrets.QXTOKEN}\"
    },

    \"updateContentCommand\": \"env; export QXToken=$QXTOKEN; env\",
    \"postCreateCommand\": \"env; export QXToken=$QXTOKEN; env\",
    \"postStartCommand\": \"env; export QXToken=$QXTOKEN; env\",
    \"postAttachCommand\": \"env; export QXToken=$QXTOKEN; env\"
}

但是remoteEnv 无法通过${secrets.QXTOKEN} 访问代码空间机密,因为可以使用GitHub Actions 并且updateContentCommandpostCreateCommandpostStartCommandpostAttachCommand 都没有为用户持久保存环境变量。 使用命令env 我从日志中看到已经设置了环境变量,但是在下一个命令中它们已经消失了。 即使postCreateCommand 能够根据documentation 访问代码空间机密,我也无法设置环境变量以供以后使用。

现在我只看到以下环境变量,但我缺少QXToken

$ env | grep QX
QXAuthURL=https://auth.quantum-computing.ibm.com/api
QXTOKEN=***

问题

是否有最佳实践在 devcontainer.json 内重用 codespaces secrets 并使它们作为代码空间中的环境变量可用?

    标签: environment-variables vscode-devcontainer codespaces github-codespaces devcontainer


    【解决方案1】:

    GitHub Codespaces 机密在localEnv 中可用,这是devcontainer.json 使用的特殊变量。因此,您可以在devcontainer.json 中设置环境变量QXToken${localEnv:QXTOKEN}
    此外,如果你想设置一个环境变量指向你的仓库中的路径,你可以使用${containerWorkspaceFolder}/path/inside/your/repo

    "remoteEnv": {
        // Use a GitHub Codespaces secret:
        "QXToken": "${localEnv:QXTOKEN}",
        // Point to a path inside your repo:
        "QISKIT_SETTINGS": "${containerWorkspaceFolder}/.qiskit/settings.conf"
    }
    

    有关devcontainer.json 中可用变量的更多详细信息,请查看documentation

    【讨论】:

      猜你喜欢
      • 2021-10-31
      • 2022-11-18
      • 2020-09-29
      • 2021-01-20
      • 2023-02-03
      • 2021-02-18
      • 2023-01-18
      • 2020-04-28
      • 2021-10-23
      相关资源
      最近更新 更多