Ohara 的每一個服務,像是 Ohara Manager、Ohara Configurator、Zookeeper、Broker 和 Worker 都會使用 Docker image 的方式來啟動 Docker container 服務,因此需要將這些啟動服務的程式打包成 Docker Image,才能執行 Docker Container 服務。今天主要介紹要如何 Build Ohara 使用的 Docker Image,在介紹如何 Build Ohara 的 Docker Image 之前,先列出目前 Ohara 有哪些 Docker image,如下:
${TAG_NAME} 主要代表 Ohara 的版號
Build Ohara 的 Docker image 指令的寫法格式如下:
$ docker build -t oharastream/${SERVICE_NAME} -f ${DOCKER_FILE_NAME} .
在這裡以 Build zookeeper 的 Docker Image 來說明,指令如下:
$ cd ohara/docker
$ docker build -t oharastream/zookeeper:${OHARA_VERSION} -f zookeeper.dockerfile .
以上的指令主要是 Build zookeeper 的 docker image, -f 參數所要放的就是要 build docker image 的檔案。
Build Worker 的 Docker image 指令如下:
$ docker build -t oharastream/connect-worker:0.0.1 -f worker.dockerfile --build-arg REPO=https://github.com/jackyoh/ohara.git .
以上的指令是用來 Build Worker 的 Docker image, 跟 Build Zookeeper 不同的地方是後面有加上 --build-arg 的參數,這個參數主要是要給 Ohara 的 QA 使用,因為 worker 的 Docker image 會打包 connector 程式的jar 檔,不同的開發者在開發 connector 程式時會使用自已的 repo 開發完成,之後開 PR 時在 Build Connector 程式碼時就會指定到開發者的 repo 下 Build 出一個修改過 connector 程式碼的 Worker Docker image,這樣才能去測試 PR connector 的程式是否有問題。
今天已經介紹要如何 Build Ohara 的 Docker image 了,在 Build Ohara 的 Docker image 也會用在有關於整合測試的部份,因為在開發者開發完程式之後要確保所有的服務都沒問題,就會重新的 Build 一次 Docker image 然後啟動 container 服務,讓整合測試程式能連到 container 的服務,確認程式的執行結果是正確的。
有關於 Ohara 整合測試的部份,之後還會再做介紹。