如何根据Docker环境variablesselect要复制的文件?

我的问题是,我有一些JavaScript文件中硬编码的URL。 它们是特定于我部署泊坞窗镜像的环境。 这是我需要的不同url的一个例子。

对于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复制一个或另一个。 顺便说一下,我已经有了一个称为STAGEENV VARIABLE

也许还有其他(更好的)解决scheme来做到这一点。 任何想法?

您可以使用构build时的variables :

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

该标志允许您在Dockerfile的RUN指令中传递像常规环境variables一样访问的构build时variables。
而且,这些值不会像ENV值一样保留在中间或最终图像中。

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