Commit 7ff66aa8 authored by Zhang Xiaoli's avatar Zhang Xiaoli
Browse files

remove redundant modules

parent 6dae7ea8
AUX_DIR=/sharewcl/shao/L1Pipeline/aux
CRDS_DIR=/sharewcl/shao/L1Pipeline/crds
DFS_ROOT=/sharewcl/dfs
ARG HARBOR_PATH
ARG MODULE_NAME
ARG TAG
FROM ${HARBOR_PATH}/csst/${MODULE_NAME}:${TAG}
# FROM csu-harbor.csst.nao:10443/csst/csst-cpic-l1:latest
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY *.sh /app/bin/
RUN chmod +x /app/bin/*.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
ENV HARBOR_PATH=${HARBOR_PATH}
ENV MODULE_NAME=${MODULE_NAME}
ENV TAG=${TAG}
USER csst
ENTRYPOINT ["goagent"]
-include config.env
$(info MODULE_NAME = $(MODULE_NAME))
$(info HARBOR_PATH = $(HARBOR_PATH))
$(info SINK_MODULE = $(SINK_MODULE))
# $(info TAG = $(TAG))
IMAGE_NAME:=$(HARBOR_PATH)/cnic/$(MODULE_NAME)
TAG?=latest
all: build push dist
build:
docker pull $(HARBOR_PATH)/csst/$(MODULE_NAME):$(TAG)
docker build --network=host \
--build-arg MODULE_NAME=$(MODULE_NAME) \
--build-arg HARBOR_PATH=$(HARBOR_PATH) \
--build-arg TAG=$(TAG) \
-t $(IMAGE_NAME) .
push:
docker push $(IMAGE_NAME)
dist:
ssh sc1 docker pull $(IMAGE_NAME)
ssh sc2 docker pull $(IMAGE_NAME)
ssh sc3 docker pull $(IMAGE_NAME)
run:
docker run -it \
-e MODULE_NAME=${MODULE_NAME} \
-e HARBOR_PATH=${HARBOR_PATH} \
-e TAG=${TAG} \
-e SINK_MODULE=${SINK_MODULE} \
--entrypoint bash \
${IMAGE_NAME}
down:
docker stop $(IMAGE_NAME)
\ No newline at end of file
MODULE_NAME=csst-msc-l1-ast-astrometry
HARBOR_PATH=csu-harbor.csst.nao:10443
# SINK_MODULE=0: no sink module; SINK_MODULE=1 : has sink module
SINK_MODULE=1
#!/bin/bash
message=$1
echo "message: "$message
headers=$(echo "$2" | sed 's/\\//g')
echo "$headers" | jq '.'
echo "headers: $headers"
has_data_list=$(echo "$headers" | jq 'has("data_list")')
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
data_list=$(echo "$headers" | jq -r '.data_list')
fixed_data_list=$(echo "$data_list" | sed 's/\([a-f0-9]\{24\}\)/"\1"/g')
# 将 data_list 重新插入回 message
message=$(echo "$message" | jq --argjson dl "$fixed_data_list" '. + {data_list: $dl}')
message=$(echo "$message" | jq -c '.')
fi
cd /pipeline/output/
run -p $message
exit_code=$?
echo "=====pipeline.log====" > /work/custom-out.txt
cat /pipeline/output/pipeline.log >> /work/custom-out.txt
timefile=/pipeline/output/timestamp.txt
if test -f "$timefile"; then
echo "$timefile exist"
mv /pipeline/output/timestamp.txt /work/timestamps.txt
fi
rm -rf /pipeline/input/* /pipeline/output/*
headers=$2
pattern='"dag_run_id":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
dag_run_id="${BASH_REMATCH[1]}"
echo "dag_run_id: $dag_run_id"
else
# no dag_run_id in json
dag_run_id=""
fi
echo "dag_run_id:$dag_run_id" >> /work/extra-attributes.txt
if [ $exit_code -eq 0 ]; then
# 判断是否有后续模块,有后续模块,则下发给后续模块任务
if [ "${SINK_MODULE:-0}" = "1" ]; then
# if [ "$SINK_MODULE" = "1" ]; then
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
strdatalist=$(echo "$fixed_data_list" | tr -d '[:space:]')
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header data_list=${strdatalist} --header repeatable=yes --upsert $1
else
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header repeatable=yes --upsert ${message}
fi
echo "finish ${MODULE_NAME}, start sink-job."
else
#没有后续模块直接结束
echo "finish ${MODULE_NAME}."
exit $exit_code
fi
else
echo "finish ${MODULE_NAME}, exit_code: $exit_code"
fi
exit $exit_code
ARG HARBOR_PATH
ARG MODULE_NAME
ARG TAG
FROM ${HARBOR_PATH}/csst/${MODULE_NAME}:${TAG}
# FROM csu-harbor.csst.nao:10443/csst/csst-cpic-l1:latest
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY *.sh /app/bin/
RUN chmod +x /app/bin/*.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
ENV HARBOR_PATH=${HARBOR_PATH}
ENV MODULE_NAME=${MODULE_NAME}
ENV TAG=${TAG}
USER csst
ENTRYPOINT ["goagent"]
-include config.env
$(info MODULE_NAME = $(MODULE_NAME))
$(info HARBOR_PATH = $(HARBOR_PATH))
$(info SINK_MODULE = $(SINK_MODULE))
# $(info TAG = $(TAG))
IMAGE_NAME:=$(HARBOR_PATH)/cnic/$(MODULE_NAME)
TAG?=latest
all: build push dist
build:
docker pull $(HARBOR_PATH)/csst/$(MODULE_NAME):$(TAG)
docker build --network=host \
--build-arg MODULE_NAME=$(MODULE_NAME) \
--build-arg HARBOR_PATH=$(HARBOR_PATH) \
--build-arg TAG=$(TAG) \
-t $(IMAGE_NAME) .
push:
docker push $(IMAGE_NAME)
dist:
ssh sc1 docker pull $(IMAGE_NAME)
ssh sc2 docker pull $(IMAGE_NAME)
ssh sc3 docker pull $(IMAGE_NAME)
run:
docker run -it \
-e MODULE_NAME=${MODULE_NAME} \
-e HARBOR_PATH=${HARBOR_PATH} \
-e TAG=${TAG} \
-e SINK_MODULE=${SINK_MODULE} \
--entrypoint bash \
${IMAGE_NAME}
down:
docker stop $(IMAGE_NAME)
\ No newline at end of file
MODULE_NAME=csst-msc-l1-ast-sso-element
HARBOR_PATH=csu-harbor.csst.nao:10443
# SINK_MODULE=0: no sink module; SINK_MODULE=1 : has sink module
SINK_MODULE=0
#!/bin/bash
message=$1
echo "message: "$message
headers=$(echo "$2" | sed 's/\\//g')
echo "$headers" | jq '.'
echo "headers: $headers"
has_data_list=$(echo "$headers" | jq 'has("data_list")')
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
data_list=$(echo "$headers" | jq -r '.data_list')
fixed_data_list=$(echo "$data_list" | sed 's/\([a-f0-9]\{24\}\)/"\1"/g')
# 将 data_list 重新插入回 message
message=$(echo "$message" | jq --argjson dl "$fixed_data_list" '. + {data_list: $dl}')
message=$(echo "$message" | jq -c '.')
fi
cd /pipeline/output/
run -p $message
exit_code=$?
echo "=====pipeline.log====" > /work/custom-out.txt
cat /pipeline/output/pipeline.log >> /work/custom-out.txt
timefile=/pipeline/output/timestamp.txt
if test -f "$timefile"; then
echo "$timefile exist"
mv /pipeline/output/timestamp.txt /work/timestamps.txt
fi
rm -rf /pipeline/input/* /pipeline/output/*
headers=$2
pattern='"dag_run_id":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
dag_run_id="${BASH_REMATCH[1]}"
echo "dag_run_id: $dag_run_id"
else
# no dag_run_id in json
dag_run_id=""
fi
echo "dag_run_id:$dag_run_id" >> /work/extra-attributes.txt
if [ $exit_code -eq 0 ]; then
# 判断是否有后续模块,有后续模块,则下发给后续模块任务
if [ "${SINK_MODULE:-0}" = "1" ]; then
# if [ "$SINK_MODULE" = "1" ]; then
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
strdatalist=$(echo "$fixed_data_list" | tr -d '[:space:]')
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header data_list=${strdatalist} --header repeatable=yes --upsert $1
else
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header repeatable=yes --upsert ${message}
fi
echo "finish ${MODULE_NAME}, start sink-job."
else
#没有后续模块直接结束
echo "finish ${MODULE_NAME}."
exit $exit_code
fi
else
echo "finish ${MODULE_NAME}, exit_code: $exit_code"
fi
exit $exit_code
FROM csu-harbor.csst.nao:10443/csst/csst-msc-l1-ast-sso-match
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY run.sh /app/bin/
RUN chmod +x /app/bin/run.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
USER csst
ENTRYPOINT ["goagent"]
IMAGE_NAME:=csu-harbor.csst.nao:10443/cnic/csst-msc-l1-ast-sso-match
IMAGE_PATH:=/nfs/tmp/scalebox-images
all: build push dist
build:
docker pull csu-harbor.csst.nao:10443/csst/csst-msc-l1-ast-sso-match
docker build --network=host -t $(IMAGE_NAME) .
push:
docker push $(IMAGE_NAME)
dist:
ssh sc1 docker pull $(IMAGE_NAME)
ssh sc2 docker pull $(IMAGE_NAME)
ssh sc3 docker pull $(IMAGE_NAME)
run:
docker run -it --entrypoint bash $(IMAGE_NAME)
down:
docker stop $(IMAGE_NAME)
#!/bin/bash
#TRACE=yes 临时办法
rm -rf /work/*
message=$1
echo "message: "$message
headers=$(echo "$2" | sed 's/\\//g')
echo "$headers" | jq '.'
echo "headers: $headers"
has_data_list=$(echo "$headers" | jq 'has("data_list")')
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
data_list=$(echo "$headers" | jq -r '.data_list')
fixed_data_list=$(echo "$data_list" | sed 's/\([a-f0-9]\{24\}\)/"\1"/g')
# 将 data_list 重新插入回 message
message=$(echo "$message" | jq --argjson dl "$fixed_data_list" '. + {data_list: $dl}')
message=$(echo "$message" | jq -c '.')
fi
cd /pipeline/output/
# python /pipeline/app/run.py $message
run -p $message
exit_code=$?
echo "=====pipeline.log====" > /work/custom-out.txt
cat /pipeline/output/pipeline.log >> /work/custom-out.txt
# echo "======module.log======" >> /work/custom-out.txt
# cat /pipeline/output/module.log|tail -n 100 >> /work/custom-out.txt
timefile=/pipeline/output/timestamp.txt
if test -f "$timefile"; then
echo "$timefile exist"
mv /pipeline/output/timestamp.txt /work/timestamps.txt
fi
headers=$2
pattern='"dag_run_id":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
dag_run_id="${BASH_REMATCH[1]}"
echo "dag_run_id: $dag_run_id"
else
# no dag_run_id in json
dag_run_id=""
fi
echo "dag_run_id:$dag_run_id" >> /work/extra-attributes.txt
if [ $exit_code -eq 0 ]; then
echo finish ast-sso.
# scalebox task add $1
else
echo "finish ast-sso, exit_code: $exit_code"
fi
rm -rf /pipeline/input/* /pipeline/output/*
exit $exit_code
ARG HARBOR_PATH
ARG MODULE_NAME
ARG TAG
FROM ${HARBOR_PATH}/csst/${MODULE_NAME}:${TAG}
# FROM csu-harbor.csst.nao:10443/csst/csst-cpic-l1:latest
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY *.sh /app/bin/
RUN chmod +x /app/bin/*.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
ENV HARBOR_PATH=${HARBOR_PATH}
ENV MODULE_NAME=${MODULE_NAME}
ENV TAG=${TAG}
USER csst
ENTRYPOINT ["goagent"]
-include config.env
$(info MODULE_NAME = $(MODULE_NAME))
$(info HARBOR_PATH = $(HARBOR_PATH))
$(info SINK_MODULE = $(SINK_MODULE))
# $(info TAG = $(TAG))
IMAGE_NAME:=$(HARBOR_PATH)/cnic/$(MODULE_NAME)
TAG?=latest
all: build push dist
build:
docker pull $(HARBOR_PATH)/csst/$(MODULE_NAME):$(TAG)
docker build --network=host \
--build-arg MODULE_NAME=$(MODULE_NAME) \
--build-arg HARBOR_PATH=$(HARBOR_PATH) \
--build-arg TAG=$(TAG) \
-t $(IMAGE_NAME) .
push:
docker push $(IMAGE_NAME)
dist:
ssh sc1 docker pull $(IMAGE_NAME)
ssh sc2 docker pull $(IMAGE_NAME)
ssh sc3 docker pull $(IMAGE_NAME)
run:
docker run -it \
-e MODULE_NAME=${MODULE_NAME} \
-e HARBOR_PATH=${HARBOR_PATH} \
-e TAG=${TAG} \
-e SINK_MODULE=${SINK_MODULE} \
--entrypoint bash \
${IMAGE_NAME}
down:
docker stop $(IMAGE_NAME)
\ No newline at end of file
MODULE_NAME=csst-msc-l1-ast-sso
HARBOR_PATH=csu-harbor.csst.nao:10443
# SINK_MODULE=0: no sink module; SINK_MODULE=1 : has sink module
SINK_MODULE=0
#!/bin/bash
message=$1
echo "message: "$message
headers=$(echo "$2" | sed 's/\\//g')
echo "$headers" | jq '.'
echo "headers: $headers"
has_data_list=$(echo "$headers" | jq 'has("data_list")')
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
data_list=$(echo "$headers" | jq -r '.data_list')
fixed_data_list=$(echo "$data_list" | sed 's/\([a-f0-9]\{24\}\)/"\1"/g')
# 将 data_list 重新插入回 message
message=$(echo "$message" | jq --argjson dl "$fixed_data_list" '. + {data_list: $dl}')
message=$(echo "$message" | jq -c '.')
fi
cd /pipeline/output/
run -p $message
exit_code=$?
echo "=====pipeline.log====" > /work/custom-out.txt
cat /pipeline/output/pipeline.log >> /work/custom-out.txt
timefile=/pipeline/output/timestamp.txt
if test -f "$timefile"; then
echo "$timefile exist"
mv /pipeline/output/timestamp.txt /work/timestamps.txt
fi
rm -rf /pipeline/input/* /pipeline/output/*
headers=$2
pattern='"dag_run_id":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
dag_run_id="${BASH_REMATCH[1]}"
echo "dag_run_id: $dag_run_id"
else
# no dag_run_id in json
dag_run_id=""
fi
echo "dag_run_id:$dag_run_id" >> /work/extra-attributes.txt
if [ $exit_code -eq 0 ]; then
# 判断是否有后续模块,有后续模块,则下发给后续模块任务
if [ "${SINK_MODULE:-0}" = "1" ]; then
# if [ "$SINK_MODULE" = "1" ]; then
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
strdatalist=$(echo "$fixed_data_list" | tr -d '[:space:]')
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header data_list=${strdatalist} --header repeatable=yes --upsert $1
else
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header repeatable=yes --upsert ${message}
fi
echo "finish ${MODULE_NAME}, start sink-job."
else
#没有后续模块直接结束
echo "finish ${MODULE_NAME}."
exit $exit_code
fi
else
echo "finish ${MODULE_NAME}, exit_code: $exit_code"
fi
exit $exit_code
FROM csu-harbor.csst.nao:10443/csst/csst-msc-l1-ast-astrometry
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY run.sh /app/bin/
RUN chmod +x /app/bin/run.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
USER csst
ENTRYPOINT ["goagent"]
IMAGE_NAME:=csu-harbor.csst.nao:10443/cnic/csst-msc-l1-ast-astrometry
TAG?=latest
all: build push dist
build:
docker pull csu-harbor.csst.nao:10443/csst/csst-msc-l1-ast-astrometry:$(TAG)
docker build --network=host -t $(IMAGE_NAME) .
push:
docker push $(IMAGE_NAME)
dist:
ssh sc1 docker pull $(IMAGE_NAME)
ssh sc2 docker pull $(IMAGE_NAME)
ssh sc3 docker pull $(IMAGE_NAME)
run:
docker run -it --entrypoint bash $(IMAGE_NAME)
down:
docker stop $(IMAGE_NAME)
scp:
scp -r ./ csst-csu:/root/csst/csst-msc-l1-ast/
#!/bin/bash
#TRACE=yes 临时办法
rm -rf /work/*
message=$1
echo "message: "$message
headers=$(echo "$2" | sed 's/\\//g')
echo "$headers" | jq '.'
echo "headers: $headers"
has_data_list=$(echo "$headers" | jq 'has("data_list")')
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
data_list=$(echo "$headers" | jq -r '.data_list')
fixed_data_list=$(echo "$data_list" | sed 's/\([a-f0-9]\{24\}\)/"\1"/g')
# 将 data_list 重新插入回 message
message=$(echo "$message" | jq --argjson dl "$fixed_data_list" '. + {data_list: $dl}')
message=$(echo "$message" | jq -c '.')
fi
cd /pipeline/output/
# python /pipeline/app/run.py $message
run -p $message
exit_code=$?
echo "=====pipeline.log====" > /work/custom-out.txt
cat /pipeline/output/pipeline.log >> /work/custom-out.txt
# echo "======module.log======" >> /work/custom-out.txt
# cat /pipeline/output/module.log|tail -n 100 >> /work/custom-out.txt
timefile=/pipeline/output/timestamp.txt
if test -f "$timefile"; then
echo "$timefile exist"
mv /pipeline/output/timestamp.txt /work/timestamps.txt
fi
headers=$2
pattern='"dag_run_id":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
dag_run_id="${BASH_REMATCH[1]}"
echo "dag_run_id: $dag_run_id"
else
# no dag_run_id in json
dag_run_id=""
fi
echo "dag_run_id:$dag_run_id" >> /work/extra-attributes.txt
pattern='"sorted_tag":"([^"]+)"'
if [[ $headers =~ $pattern ]]; then
sorted_tag="${BASH_REMATCH[1]}"
echo "sorted_tag: $sorted_tag"
else
# no sorted_tag in json
sorted_tag=1
fi
if [ $exit_code -eq 0 ]; then
if [ "$has_data_list" = "true" ]; then
# 提取 data_list 字段的值
strdatalist=$(echo "$fixed_data_list" | tr -d '[:space:]')
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header data_list=${strdatalist} --header repeatable=yes --upsert $1
else
scalebox task add --header sorted_tag=${sorted_tag} --header dag_run_id=${dag_run_id} --header repeatable=yes --upsert ${message}
fi
echo "finish ast, start sink-job."
else
echo "finish ast, exit_code: $exit_code"
fi
rm -rf /pipeline/input/* /pipeline/output/*
exit $exit_code
FROM csu-harbor.csst.nao:10443/csst/csst-msc-l1-mbi-phot
USER root
# 安装jq
RUN apt-get update \
&& apt-get install -y --no-install-recommends jq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY run.sh /app/bin/
RUN chmod +x /app/bin/run.sh
COPY --from=hub.cstcloud.cn/scalebox/agent /usr/local /usr/local
RUN mkdir /work/
RUN chown -R csst:csst /work
RUN chown -R csst:csst /pipeline
WORKDIR /work/
USER csst
ENTRYPOINT ["goagent"]
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment