Add datanode DockerFile

Signed-off-by: XuanYang-cn <xuan.yang@zilliz.com>
pull/4973/head^2
XuanYang-cn 2021-01-26 16:56:36 +08:00 committed by yefu.chen
parent 2ea6a5f9ee
commit 0e6985b42c
5 changed files with 72 additions and 10 deletions

View File

@ -43,9 +43,9 @@ dir ('build/docker/deploy') {
sh 'docker-compose push querynode'
sh 'docker pull registry.zilliz.com/milvus-distributed/milvus-distributed-dev:latest || true'
sh 'docker pull ${SOURCE_REPO}/writenode:${SOURCE_TAG} || true'
sh 'docker-compose build --force-rm writenode'
sh 'docker-compose push writenode'
sh 'docker pull ${SOURCE_REPO}/datanode:${SOURCE_TAG} || true'
sh 'docker-compose build --force-rm datanode'
sh 'docker-compose push datanode'
}
} catch (exc) {
throw exc

View File

@ -13,7 +13,7 @@ try {
sh 'docker-compose -p ${DOCKER_COMPOSE_PROJECT_NAME} up -d queryservice'
sh 'docker-compose -p ${DOCKER_COMPOSE_PROJECT_NAME} run -e QUERY_NODE_ID=1 -d querynode'
sh 'docker-compose -p ${DOCKER_COMPOSE_PROJECT_NAME} run -e QUERY_NODE_ID=2 -d querynode'
sh 'docker-compose -p ${DOCKER_COMPOSE_PROJECT_NAME} run -e WRITE_NODE_ID=3 -d writenode'
sh 'docker-compose -p ${DOCKER_COMPOSE_PROJECT_NAME} run -e DATA_NODE_ID=3 -d datanode'
}
dir ('build/docker/test') {

View File

@ -0,0 +1,39 @@
# Copyright (C) 2019-2020 Zilliz. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software distributed under the License
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied. See the License for the specific language governing permissions and limitations under the License.
FROM milvusdb/milvus-distributed-dev:amd64-ubuntu18.04-latest AS openblas
#FROM alpine
FROM ubuntu:bionic-20200921
RUN apt-get update && apt-get install -y --no-install-recommends libtbb-dev gfortran
#RUN echo "http://dl-cdn.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories
#RUN sed -i "s/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g" /etc/apk/repositories \
# && apk add --no-cache libtbb gfortran
COPY --from=openblas /usr/lib/libopenblas-r0.3.9.so /usr/lib/
RUN ln -s /usr/lib/libopenblas-r0.3.9.so /usr/lib/libopenblas.so.0 && \
ln -s /usr/lib/libopenblas.so.0 /usr/lib/libopenblas.so
COPY ./bin/datanode /milvus-distributed/bin/datanode
COPY ./configs/ /milvus-distributed/configs/
COPY ./lib/ /milvus-distributed/lib/
ENV LD_LIBRARY_PATH=/milvus-distributed/lib:$LD_LIBRARY_PATH:/usr/lib
WORKDIR /milvus-distributed/
CMD ["./bin/datanode"]

View File

@ -70,13 +70,28 @@ services:
networks:
- milvus
writenode:
image: ${TARGET_REPO}/writenode:${TARGET_TAG}
# writenode:
# image: ${TARGET_REPO}/writenode:${TARGET_TAG}
# build:
# context: ../../../
# dockerfile: build/docker/deploy/writenode/DockerFile
# cache_from:
# - ${SOURCE_REPO}/writenode:${SOURCE_TAG}
# environment:
# PULSAR_ADDRESS: ${PULSAR_ADDRESS}
# ETCD_ADDRESS: ${ETCD_ADDRESS}
# MASTER_ADDRESS: ${MASTER_ADDRESS}
# MINIO_ADDRESS: ${MINIO_ADDRESS}
# networks:
# - milvus
datanode:
image: ${TARGET_REPO}/datanode:${TARGET_TAG}
build:
context: ../../../
dockerfile: build/docker/deploy/writenode/DockerFile
dockerfile: build/docker/deploy/datanode/DockerFile
cache_from:
- ${SOURCE_REPO}/writenode:${SOURCE_TAG}
- ${SOURCE_REPO}/datanode:${SOURCE_TAG}
environment:
PULSAR_ADDRESS: ${PULSAR_ADDRESS}
ETCD_ADDRESS: ${ETCD_ADDRESS}

View File

@ -17,6 +17,7 @@ import (
)
const retry = 10
const interval = 200
func main() {
@ -47,7 +48,14 @@ func main() {
var cnt int
for cnt = 0; cnt < retry; cnt++ {
time.Sleep(time.Duration(cnt*interval) * time.Millisecond)
if cnt != 0 {
log.Println("Master service isn't ready ...")
log.Printf("Retrying getting master service's states in ... %v ms", interval)
}
msStates, err := masterClient.GetComponentStates()
if err != nil {
continue
}
@ -60,7 +68,7 @@ func main() {
break
}
if cnt >= retry {
panic("Connect to master service failed")
panic("Master service isn't ready")
}
if err := svr.SetMasterServiceInterface(masterClient); err != nil {
@ -91,7 +99,7 @@ func main() {
break
}
if cnt >= retry {
panic("Connect to data service failed")
panic("Data service isn't ready")
}
if err := svr.SetDataServiceInterface(dataService); err != nil {