【问题标题】:How can I get the environment variable from docker file如何从 docker 文件中获取环境变量
【发布时间】:2018-03-27 07:16:30
【问题描述】:

我如何从 docker 文件中获取环境变量,例如我正在添加一个

ENV URL_PATH="google.com"

在我的dockerfile 中,那么我可以在用户定义变量的帮助下在我的Jmeter.jmx 文件中获取这个URL_PATH

在窗口上使用正确的{__env(URL_PATH)} 可以正常工作

但在 docker 上它不起作用。我该如何解决这个问题?

【问题讨论】:

    标签: linux docker jmeter docker-compose jmeter-4.0


    【解决方案1】:

    您可以在运行容器时使用-e 选项将环境变量传递到容器中。

    docker run -e URL_PATH=google.com ...
    

    文档:https://docs.docker.com/engine/reference/run/#env-environment-variables

    【讨论】:

    • 这个兼容Linux+终端吗
    • 我认为这是用于 Windows,但我使用的是 Linux
    • Docker 代码:- RUN -e URL_PATH=google.com COPY entrypoint.sh / WORKDIR ${JMETER_HOME} COPY sample.jmx ./ RUN ls -l RUN echo $PATH # ENTRYPOINT ["/entrypoint .sh"] CMD jmeter -JJmeter_Result=$Jmeter_Result CMD jmeter -n -t sample.jmx -l sample.csv -e -o sample.html
    • 我传入 jmeter 用户定义变量:- {__env(URL_PATH)} ${__env(URL_PATH)}
    • 我的 Docker 文件截图 :- dropbox.com/s/05lz2r2jzdd0dz4/Untitled.png?dl=0 你能检查并更新我吗
    【解决方案2】:

    据我所知,__env() is a Custom JMeter Function 因此它在原版 JMeter 中不可用,因此选项位于:

    1. 修改您的Dockerfile 以包括将http://repo1.maven.org/maven2/kg/apc/jmeter-plugins-functions/2.0/jmeter-plugins-functions-2.0.jar 下载到“lib/ext”。这样你就可以在 Docker 环境中正常使用 __env() 函数了。请参阅Make Use of Docker with JMeter - Learn How 示例 Docker 配置,假设使用带有插件的 JMeter。

    2. 切换到__groovy() function。将所有出现的{__env(URL_PATH)} 替换为以下表达式:

      ${__groovy(System.getenv('URL_PATH'),)} 
      

    【讨论】:

    • 第二个选项拯救了我的一天,谢谢。
    猜你喜欢
    • 2018-08-12
    • 2021-12-21
    • 2016-03-07
    • 2020-06-09
    • 2018-06-19
    • 2019-08-02
    • 2017-03-06
    • 2016-12-07
    • 2021-12-19
    相关资源
    最近更新 更多