javascript - 如何根据Docker环境变量选择要复制的文件?

标签 javascript docker dockerfile

我的问题是我在 Javascript 文件中硬编码了一些 URL。它们特定于我部署 docker 镜像的环境。这是我需要的不同网址的示例。

对于实时 ENV:

export const BLUE_SERVICE   = 'https://myliveserver/api/blueservice';
export const RED_SERVICE    = 'https://myliveserver/api/redservice';

对于发布ENV:

export const BLUE_SERVICE   = 'https://myreleaseserver/api/blueservice';
export const RED_SERVICE    = 'https://myreleaseserver/api/redservice';

我的想法是拥有该文件的两个版本。然后,我将根据 dockerfile 中的 ENV VARIABLE 复制其中一个。顺便说一句,我已经有一个名为 STAGE

ENV VARIABLE

也许还有其他(更好)的解决方案可以做到这一点。有什么想法吗?

最佳答案

您可以使用build-time variables相反:

docker run –-build-arg BLUE_SERVICE='...' –-build-arg RED_SERVICE='...' 

This flag allows you to pass the build-time variables that are accessed like regular environment variables in the RUN instruction of the Dockerfile.
Also, these values don’t persist in the intermediate or final images like ENV values do.

您可以生成两个图像,这两个图像将在其 Dockerfile 中使用正确的 BLUE 和 RED SERVICE 值生成正确的 javascript 文件。

关于javascript - 如何根据Docker环境变量选择要复制的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34898246/

相关文章:

javascript - 把句子串分成子串=<最长单个词的长度

javascript - TypeError : input[key - 1]. 值未定义

javascript - 在 JAVASCRIPT 中打印文本文件

javascript - jQuery 隐藏值未发送

linux - 在 CentOS 7 上无法从 Docker 容器内访问网络

docker - 导出 docker 容器内的环境变量

docker - CircleCI Docker 退出,代码为 137

mysql - Docker 在 Ubuntu 16.04 上安装 MySQL v3.23

ruby-on-rails - 在 docker 容器中使用像 RVM 这样的版本管理器是一种不好的做法吗?

Dockerfile:如何使用 curl 下载文件并复制到容器中