我們對我們的npm repo使用Sinopia,並且證書(Home或當前目錄中的.npmrc文件)是必需的。對於構建......直到今天,我已經避免在代碼中堅持這些cred,並且通過傳遞一個env var,將其設置爲.npmrc憑證文件的內容,使它們遠離docker映像層。然後在生成過程:在Google Container Builder請求中爲Docker版本設置env var與祕密YAML
RUN cat $NPMRC>.npmrc && npm install ; rm .npmrc
...都在同一個運行避免了層堅持用它的祕密.....
但我想設置容器使用建立請求YAML文件來設置環境。 var但失敗。 build-request.yaml必須在代碼中,所以我不能把它放在那裏,我試圖從桶中複製它後嘗試添加--build-arg NPMRC="$(<.npmrc)"
....沒有錯誤但auth失敗
我試圖創建一個使用像這樣的咒語構建ARGS: [..., '--build-arg', 'NPMRC=\""$(< ./.npmrc)"\"', ....]
這表明在構建歷史
... build --build-arg "NPMRC=\""$(cat ./.npmrc)"\"" -t
...這AFAICT是正確的,如果慶典得到殼層的保持想我所想它應該:
echo "NPMRC=\""$(cat ./.npmrc)"\"" -> NPMRC="_auth=...."
尋找解決方案,其他人可能已經發現
通常,在構建參數或環境變量上設置祕密不是一個好主意。那些堅持圖像的元數據,可以很容易地查看。 –
我們在作品中有一個功能,可以幫助你很多。敬請關注! –
@AhmetAlpBalkan Docker檢查 does not * not *揭示NPMRC env變量....是否有其他地方你認爲我應該看? –
Rondo