From 46a03ee09eb295bdbe55bd5cd6618cf1969ddd81 Mon Sep 17 00:00:00 2001 From: wey-gu Date: Mon, 25 Jul 2022 20:17:10 +0800 Subject: [PATCH] mock agent to call service scripts --- all-in-one.sh | 2 ++ backup_restore/.env | 2 +- backup_restore/.gitignore | 1 + backup_restore/Dockerfile | 3 +- backup_restore/docker-compose.yaml | 51 ++++++++++++++++++++++----- backup_restore/scripts/nebula.service | 15 ++++++++ 6 files changed, 63 insertions(+), 11 deletions(-) create mode 100644 backup_restore/.gitignore create mode 100644 backup_restore/scripts/nebula.service diff --git a/all-in-one.sh b/all-in-one.sh index f1a3ad9..de9ca7c 100644 --- a/all-in-one.sh +++ b/all-in-one.sh @@ -552,6 +552,8 @@ function install_nebula_graph_br { fi cd nebula-up && git stash 1>/dev/null 2>/dev/null && git pull 1>/dev/null 2>/dev/null cd backup_restore + chmod +x scripts/nebula.service + ln -s ../../nebula-docker-compose/data data docker-compose pull || logger_error "Failed to pull docker images for backup_restore env" docker-compose up -d diff --git a/backup_restore/.env b/backup_restore/.env index 82e9a92..bdfc4ea 100644 --- a/backup_restore/.env +++ b/backup_restore/.env @@ -1,2 +1,2 @@ -BR_VERSION=0.6.0 +BR_VERSION=0.6.1 AGENT_VERSION="0.1.1" diff --git a/backup_restore/.gitignore b/backup_restore/.gitignore new file mode 100644 index 0000000..6320cd2 --- /dev/null +++ b/backup_restore/.gitignore @@ -0,0 +1 @@ +data \ No newline at end of file diff --git a/backup_restore/Dockerfile b/backup_restore/Dockerfile index 911eb9f..d28a535 100644 --- a/backup_restore/Dockerfile +++ b/backup_restore/Dockerfile @@ -1,8 +1,9 @@ FROM alpine WORKDIR /root -ENV BR_VERSION=0.6.0 +ENV BR_VERSION=0.6.1 ENV AGENT_VERSION=0.1.1 RUN wget https://github.com/vesoft-inc/nebula-br/releases/download/v$BR_VERSION/br-$BR_VERSION-linux-amd64 -O br && chmod +x br && mv br /usr/local/bin/br && \ wget https://github.com/vesoft-inc/nebula-agent/releases/download/v$AGENT_VERSION/agent-$AGENT_VERSION-linux-amd64 -O agent && chmod +x agent && mv agent /usr/local/bin/agent +RUN apk add --no-cache bash docker && rm -rf /var/cache/apk/* ENTRYPOINT ["/usr/local/bin/agent"] diff --git a/backup_restore/docker-compose.yaml b/backup_restore/docker-compose.yaml index a926344..1e19440 100644 --- a/backup_restore/docker-compose.yaml +++ b/backup_restore/docker-compose.yaml @@ -53,47 +53,80 @@ services: metad0-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="metad0:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/meta0:/data/meta + command: --agent="metad0:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_metad0_1' metad1-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="metad1:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/meta1:/data/meta + command: --agent="metad1:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_metad1_1' metad2-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="metad2:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/meta2:/data/meta + command: --agent="metad2:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_metad2_1' storaged0-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="storaged0:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/storage0:/data/storage + command: --agent="storaged0:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_storaged0_1' storaged1-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="storaged1:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/storage1:/data/storage + command: --agent="storaged1:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_storaged1_1' storaged2-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="storaged2:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + - ./data/storage2:/data/storage + command: --agent="storaged2:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_storaged2_1' graphd-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="graphd:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + command: --agent="graphd:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_graphd_1' graphd1-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="graphd1:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + command: --agent="graphd1:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_graphd1_1' graphd2-agent: image: weygu/nebula-br:${BR_VERSION} - command: --agent="graphd2:8888" --meta="metad0:9559" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./scripts:/usr/local/nebula/scripts + command: --agent="graphd2:8888" --meta="metad0:9559" --debug network_mode: 'container:nebula-docker-compose_graphd2_1' minio-client: diff --git a/backup_restore/scripts/nebula.service b/backup_restore/scripts/nebula.service new file mode 100644 index 0000000..2c16e58 --- /dev/null +++ b/backup_restore/scripts/nebula.service @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +case "$1" in + "start") + # as we cannot stop services, we use restart to make restore work, it's not for production use + docker restart ${HOSTNAME} + ;; + "status") + status=$(docker inspect -f '{{.State.Status}}' ${HOSTNAME});echo "${status^}" || echo "Exit" + ;; + "stop") + # stop container will cause agent to exit, too, this is just a hack to prevent it, not for production use + # we use start instead of stop here + docker start ${HOSTNAME} + ;; +esac