插件构建
当构建插件的时候,镜像需要被重新构建。
构建镜像
cd Dragonfly2
docker build -t dragonfly-plugin-builder -f build/plugin-builder/Dockerfile .
构建插件
插件类型包括: resource、manager 以及 scheduler 当类型为 scheduler 时,包含插件名 evaluator 当类型为 manager 时,包含插件名 search
示例
1. 资源插件示例
- 为 cdn 和 dfget 构建插件
PLUGIN_TYPE=resource
# custom protocol
PLUGIN_NAME=dfs
PLUGIN_PATH=`pwd`/pkg/source/testdata/plugin
docker run --entrypoint=/bin/bash \
-v "$PLUGIN_PATH":/go/src/plugin \
-v `pwd`/artifacts/:/artifacts \
dragonfly-plugin-builder \
/build.sh "$PLUGIN_TYPE" "$PLUGIN_NAME" /go/src/plugin
- 构建 cdn 和 dfdaemon 镜像
docker build -t cdn -f build/plugin-builder/images/cdn/Dockerfile .
docker build -t dfdaemon -f build/plugin-builder/images/dfdaemon/Dockerfile .
2. Scheduler 插件示例
- 构建 scheduler 插件
PLUGIN_TYPE=scheduler
PLUGIN_NAME=evaluator
PLUGIN_PATH=`pwd`/scheduler/scheduler/evaluator/testdata/plugin
docker run --entrypoint=/bin/bash \
-v "$PLUGIN_PATH":/go/src/plugin \
-v `pwd`/artifacts/:/artifacts \
dragonfly-plugin-builder \
/build.sh "$PLUGIN_TYPE" "$PLUGIN_NAME" /go/src/plugin
- 构建 scheduler 镜像
docker build -t scheduler -f build/plugin-builder/images/scheduler/Dockerfile .
3. Manager 插件示例
- 构建 manager 插件
PLUGIN_TYPE=manager
PLUGIN_NAME=searcher
PLUGIN_PATH=`pwd`/manager/searcher/testdata/plugin
docker run --entrypoint=/bin/bash \
-v "$PLUGIN_PATH":/go/src/plugin \
-v `pwd`/artifacts/:/artifacts \
dragonfly-plugin-builder \
/build.sh "$PLUGIN_TYPE" "$PLUGIN_NAME" /go/src/plugin
- 构建 manager 镜像
docker build -t manager -f build/plugin-builder/images/manager/Dockerfile .