利用 DockerHub Registry
Image Builder 利用 DockerHub Registry 發佈 Image
PrimeHub 的 Image Builder 功能讓管理者可以建立客製 image,image 創建完成後會發佈到設定的 registry 中指定 repository。
這份文件說明如何設定 PrimeHub 發佈 Image Builder 建立的 image 至 DockerHub registry 。
先決條件
操作者需要有在實際環境中 PrimeHub 目錄的存取權限,以及.env檔的存取權限。
步驟
設定 DockerHub registry
- 登入 DockerHub。 
- 進入 - Account Settings/- Security/- Access Tokens由此生成 access token 並記錄下來。 [官方參考: Managing access tokens]
- 新增 repository 並記下其 - <namespace>及- <repo name>資訊;我們需要填入至- .env。
- 編輯 - .env檔,並依照持有資訊填入下列的環境變數;若原先無此變數,請自行添加。- 環境變數 - 變數值 - PRIMEHUB_FEATURE_CUSTOM_IMAGE- true- PRIMEHUB_CUSTOM_IMAGE_REGISTRY_ENDPOINT- docker.io- PRIMEHUB_CUSTOM_IMAGE_REGISTRY_USERNAME- <your_docker_hub_username>- PRIMEHUB_CUSTOM_IMAGE_REGISTRY_PASSWORD- <your_access_token>- PRIMEHUB_CUSTOM_IMAGE_REPO_PREFIX- docker.io/<namespace>
- 執行下列指令安裝 PrimeHub 元件;指令會依據 - .env來設定配置。- cd ${PRIMEHUB_REPO} # 進入環境下 PrimeHub 目錄 make component-diff-primehub # 變更差異比對 make component-install-primehub # 元件安裝
我們已經成功設定 PrimeHub 利用指定的 DockerHub registry 作為 Image Builder 發佈 image 的目的地。接下來透過 Image Builder 創建的 image 會自動發佈於此。
由 Image Builder 創建 Image
此時於 Image Builder 建立 image spec 時,請將 Name 填入完全一致的 <repo name>,且該 repository 必須要事先存在於 DockerHub;輸入完其它欄位,建立 image 成功後,Image Builder 會自動發佈至我們配置的 DockerHub registry 中指定的 repository。
- 由 Image Builder 新增 Image Spec。 - Name:- test-build為我們在 DockerHub 的- <repo-name>。
- Base Image:- registry.gitlab.com/infuseai/docker-stacks/scipy-notebook為 InfuseAI 官方提供的 base images 之一; 請見「客製 image 指南」。
- Use Image PullSecret: InfuseAI 官方提供的 registry 為非公開,故需要指定特定的認證權限;請見「GitLab 用 PullSecret」,如果需要認證權限,請洽 InfuseAI 窗口。
 

- Image 建立發佈完成後,可以得知該 image 已發佈至指定的 registry/namespace/repository - docker.io/gabrielxinfuseai/test-build。 
- DockerHub 也可見到從 Image Builder of PrimeHub 發佈而來的資訊。 

使用 Image
我們可以將此 image(url) 透過 Image Management 加入至 PrimeHub,讓使用者可以選用;請見「Image Management」 以及「增加 Image」。
