我的问题是我在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
也许还有其他(更好)的解决方案。有什么想法吗?
答案 0 :(得分:1)
您可以改为使用build-time variables:
docker run –-build-arg BLUE_SERVICE='...' –-build-arg RED_SERVICE='...'
此标志允许您传递在Dockerfile的
RUN
指令中像常规环境变量一样访问的构建时变量。
此外,这些值不会像ENV
值那样在中间或最终图像中保留。
您可以生成两个图像,这些图像将在其Dockerfile中使用正确的BLUE和RED SERVICE值生成正确的javascript文件。