2016-08-17 48 views
2

我目前正在嘗試使用rkt容器的ACI構造。在我的實驗過程中,我已經構建了一些容器,特別是用作依賴項。我現在想要使用這些.aci圖像作爲其他圖像的依賴關係。由於這些文件是按名稱提取的(例如「quay.io/alpine-sh」),我想知道是否有辦法引用實際的本地.aci文件。在acbuild中向ACI添加本地依賴

有沒有辦法從本地文件系統導入這些.aci文件,還是必須設置本地Web服務器來充當存儲庫?

回答

3

acbulid中的依賴關係(至少到版本0.3)只能被定義爲http鏈接, ,所以你需要通過http使你的aci可用,作爲acbuild的依賴。 通過http發佈你的aci並不難。圖像存檔可以實際上託管在github或bitbucket上。

由於相關問題(跨acbuild調用#144的緩存依賴性)關閉,最近版本的acbuild似乎支持它 。

緩存的ACI被存儲在內部的目錄depstore-tardepstore-expanded中。如果我們不知何故將這些目錄的內容保存在acbuild init, 之間,acis將不會一遍又一遍地下載。

當我玩acbuild時,我非常惱火,acbulid重新下載了每個版本的依賴關係。 我寫了腳本https://bitbucket.org/legeyda/anyorigin/src/tip/acbuild-plus 它將$CONTEXT_ROOT/.acbuild中的符號鏈接配置爲指向 /var/lib/acbuild/hack中的持久性目錄。用法很簡單:

acbuild begin 
acbuild-plus init target 

之後所有的依賴關係都會被acbuild緩存。

您也可以手動安裝aci文件使其可用於acbuild。 這很簡單,只要

acbulid-plus install <your-image.aci> 

我測試過用acbuild v0.3.0的腳本。 您可以在存儲庫中的acbuld-plus旁邊的Makefile中使用它。