我有一個 monorepo 設定,如下所示:
/serviceA
/serviceB
/packageA
/packageB
我想安裝packageA在里面serviceA,這是一個里面有 python 服務的 docker 容器。
在我的serviceA requirements.txt檔案中,我可以參考本地包:file:///Users/me/dev/platform/packageA,提交時失敗,gcloud builds因為該包不在該機器上。
我的問題是,我在這里有哪些選擇,我是否以正確/最佳方式進行此設定?
我的想法是我可以嘗試將代碼復制到 docker 中,但這似乎有點 hacky - 因為我不確定版本會去哪里..
另一種選擇是先推送到 GH 并從那里參考,但這意味著我需要以某種方式授予對 repo 的訪問權限以進行云構建。
uj5u.com熱心網友回復:
您可以使用Docker 多階段構建策略:
FROM base as package-builder
COPY your_package_A_code
RUN your_package_build_stuff
FROM base
COPY --from=package-builder /path/builded/package_A /path/to/package_A
這樣你就不會在服務 A 中公開你的包 A 的代碼。然后,參考你的 package_A 你決定存盤(在我的例子中:)/path/to/package_A在你的requirements.txt.
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/323203.html
