【问题标题】:Copy a docker ARG into an Angularjs config file将 docker ARG 复制到 Angularjs 配置文件中
【发布时间】:2021-04-14 12:38:43
【问题描述】:

我有一个通过 Jenkins 管道和 Docker 文件构建的简单 AngularJS 应用程序。运行 Jenkins 作业时,环境已设置。然后它构建到两个环境之一:开发或集成。我需要的是一种将变量放入 Angular 应用程序的方法。

docker 文件使用环境来构建不同的配置设置,例如:

    ARG env
    COPY build_config/${env} /opt/some/path...

我需要将该环境放入其中一个控制器中。有没有办法将 env 复制到控制器中。我尝试了类似以下的操作:

    COPY ${env} path/to/angular/file/controller

我已经搜索并尝试了不同的方法,但找不到适用于 Jenkins 与 Docker 管道的解决方案。

【问题讨论】:

  • ARG 用于创建变量,在您的情况下,变量名称为env。该变量将保存一些字符串值。假设env 具有字符串值dev。您的目标是将字符串 dev 复制到path/to/angular/file/controller,还是将文件/目录 dev 复制到path/to/angular/file/controller
  • @ShaneBishop 目标是将字符串 dev 复制到控制器中。

标签: angularjs jenkins environment-variables dockerfile runtime


【解决方案1】:

您可以只使用RUN 将字符串写入文件:

RUN echo "$env" > path/to/angular/file/controller

如果你想追加到文件而不是覆盖它,使用

RUN echo "$env" >> path/to/angular/file/controller

【讨论】:

  • 我现在如何访问文件中的字符串?
  • 你可以cat文件获取文件内容:cat path/to/angular/file/controller
  • 有没有办法将该文件的内容分配给变量? var baseUrl = ${env} + "/rest/of/the/url" 之类的东西?
  • 如果你想将该文件的内容分配给一个shell脚本中的变量,你可以使用my_var="$(cat path/to/angular/file/controller)"
  • 它不在 shell 脚本中。我需要将文件的内容分配给 angularjs 代码本身的变量。
猜你喜欢
  • 2018-03-13
  • 2019-03-20
  • 1970-01-01
  • 2012-08-11
  • 2018-12-04
  • 2016-02-29
  • 1970-01-01
  • 2014-03-29
相关资源
最近更新 更多