2016-01-20 35 views
1

我的問題是,我有一些網址在JavaScript文件中硬編碼。它們特定於我部署泊塢窗映像的環境。這是我需要的不同網址的一個例子。如何根據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 VARIABLESTAGE

也許有一個(更好)的解決方案來做到這一點。任何想法?

回答

1

你可以使用build-time variables代替:

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

此標誌允許你傳遞都像是在Dockerfile的RUN指令正規的環境變量訪問的編譯時變量。
此外,這些值不會持續存在於中間或最終圖像中,例如ENV值。

您可以生成兩個圖像,它們將在其Dockerfile中爲BLUE和RED SERVICE使用正確的值生成正確的JavaScript文件。