【问题标题】:How to pass Environment Variables to TeamCity Agent build configuration如何将环境变量传递给 TeamCity Agent 构建配置
【发布时间】:2020-09-16 08:54:34
【问题描述】:

我正在设置 TeamCity 服务器和代理。代理在 docker 容器(Windows 服务器核心)中运行,我定义了要在代理容器上设置的各种环境变量,最终设置为 Windows 环境变量。有些是通过 docker-compose 传入的,有些是在构建映像时在我的代理 Dockerfile 中设置的,使用 RUN SETX /M NAME VALUE。当我在代理上打开控制台并在 cmd 中键入 SET 时,我可以看到它们。

但是,当我查看 TeamCity 服务器门户中的代理并查看它们的代理参数 -> 环境变量时 - 我没有看到我定义的任何操作系统环境变量。看起来是传入了 PATH 变量,但没有传入其他变量。

如何将特定环境变量传递给我的代理构建配置?

【问题讨论】:

    标签: teamcity


    【解决方案1】:

    不幸的是,我找到的唯一方法是列出here

    将以下内容放入 buildAgent.properties 文件中,如下所示:

    env.MYVAR=%MYVAR%
    env.MYVAR2=%MYVAR2%
    

    TeamCity Agent 映像基于 windows nanoserver,它不适合我的需要,因此我必须自己创建 buildagent.properties 文件(不确定如何编辑自动创建的现有文件)。为此,我使用了以下批处理脚本,我将其作为代理的 docker 容器的入口点运行:

    @echo off
    ::------------------------------
    for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
    set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
    set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
    set DTStamp=%YYYY%-%MM%-%DD%_%HH%-%Min%
    ::------------------------------
    
    echo ##############################################################
    echo Run-Agent.bat: %DTStamp%
    echo ##############################################################
    
    cd C:\BuildAgent\conf\
    IF NOT EXIST buildagent.properties echo buildagent.properties not found - Creating buildagent.properties... && (
    echo serverUrl=%SERVER_URL%
    echo name=%AGENT_NAME%
    echo workDir=../work
    echo tempDir=../temp
    echo systemDir=../system
    echo authorizationToken=%AGENT_TOKEN%
    echo env.MYVAR1=%MYVAR1%
    echo env.MYVAR2=%MYVAR2%
    echo env.MYVAR3=%MYVAR3%
    ) > buildagent.properties
    
    echo running TeamCity Build Agent in background...
    cd C:\BuildAgent\bin\
    start /b service.start.bat
    
    cd \
    C:\Windows\System32\cmd.exe
    @echo on
    

    这似乎对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 2019-02-10
      • 2013-12-29
      • 2016-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多