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

时间:2016-01-20 11:02:30

标签: javascript docker dockerfile

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

对于live ENV

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

对于release ENV

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

我的想法是有两个版本的文件。然后我会根据我的dockerfile中的ENV VARIABLE复制一个或另一个。顺便说一下,我已经有ENV VARIABLE名为STAGE

也许还有其他(更好)的解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您可以改为使用build-time variables

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

此标志允许您传递在Dockerfile的RUN指令中像常规环境变量一样访问的构建时变量。
  此外,这些值不会像ENV值那样在中间或最终图像中保留。

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