1. 编译

1.1 编译全部模块 备注:如果您是在linux环境或者不需要对单个模块进行编译,只需要运行1.1的命令即可

  1. $ make

1.2 为其它平台交叉编译:

  1. $ KUN_BUILD_PLATFORMS="linux/amd64" make

1.3 只编译某一个模块:

  1. $ make WHAT=./pkg/controller

2. 打包

用法

  1. $ scripts/build-image.sh -h
  2. Usage: scripts/build-image.sh [OPTIONS]
  3. -h --help 帮助
  4. -m= --module= 模块名称
  5. -i= --image= 镜像名称
  6. -t= --tag= 镜像标签
  7. -e= --env= 部署环境(镜像仓库配置)

您需要依次打包controller组件、 funclet组件、 stubs组件,需要注意的runtime目前不开源,直接拉取镜像即可 执行脚本打包

  1. $ scripts/build-image.sh -m=controller -i=mini-controller -t=dev
  2. $ scripts/build-image.sh -m=funclet -i=mini-funclet -t=dev
  3. $ scripts/build-image.sh -m=stubs -i=func-registry -t=dev

如果您需要发布打包好的镜像,需要指定REGISTRY,如:

  1. $REGISTRY=registry.baidubce.com/<your_namespace>/ ./scripts/build-image.sh -m=funclet -i=mini-funclet -t=dev

REGISTRY地址可以在 百度云容器镜像服务 中免费申请体验

如果需要容器build项目,可以使用WITHBUILD环境变量控制

  1. $ WITHBUILD=1 scripts/build-image.sh -e=test -m=funclet -i=mini-funclet -t=dev

例如:打包runner-runtime

  1. $ sudo WITHNODEJS8=1 WITHNODEJS10=1 WITHNODEJS12=1 WITHPYTHON2=1 WITHPYTHON3=1 WITHJAVA8=1 bash scripts/runner-runtime/build.sh image:tag runnertag

您也可以提前配置不同的部署环境镜像仓库 eg: 线上环境的配置目录 ~/zhangsan/docker/config/online 测试环境的配置目录 ~/zhangsan/docker/config/test

  1. mkdir -p /tmp/docker/config/online /tmp/docker/config/test
  2. export DOCKER_CONFIG_ONLINE="/tmp/docker/config/online"
  3. export DOCKER_CONFIG_TEST="/tmp/docker/config/test"
  4. # online
  5. $ docker --config $DOCKER_CONFIG_ONLINE login registry.baidubce.com -u <online-user> -p'<online-password>'
  6. # test
  7. $ docker --config $DOCKER_CONFIG_TEST login registry.baidubce.com -u <test-user> -p'<test-password>'

3. 上传镜像

如果在本机,否则需要上传镜像

  1. docker push [OPTIONS] NAME[:TAG]
  2. 如:
  3. docker push registry.baidubce.com/<your_namespace>/<your_image_name>:<your_image_tag>

4. 启动服务

  1. export faasPath=/<your_path_prefix>/easyfaas/faas
  2. #runner-runtime请直接下载镜像
  3. docker run -t -d -e WITHRUNNER=1 -e WITHNODEJS10=1 -e WITHNODEJS12=1 -e WITHPYTHON3=1 --name runner-runtime -v ${faasPath}/runtime:/var/faas/runtime -v ${faasPath}/runner:/var/faas/runner registry.baidubce.com/easyfaas-public/runner-runtime:demo1.0
  4. #分别启动controller、stubs(func-registry)、funclet组件
  5. docker run -t -d --privileged -v ${faasPath}/runner:/var/faas/runner -v ${faasPath}/runtime:/var/faas/runtime -v ${faasPath}/data:/var/faas/runner-data -v ${faasPath}/invoker/run:/var/run/faas -v ${faasPath}/funcData:/var/faas/funcData --name mini-funclet-dev registry.baidubce.com/<your_namespace>/<your_funclet_image_name>:<your_image_tag>
  6. docker run -t -d --network host -v ${faasPath}/invoker/run:/var/run/faas --name controller-dev registry.baidubce.com/<your_namespace>/<your_controller_image_name>:<your_image_tag> /controller --maxprocs=10 --port=8899 --repository-endpoint=http://127.0.0.1:8002 --repository-version=v1 --repository-auth-type=noauth --logtostderr=true --http-enhanced=true -v10
  7. docker run -t -d --network host --name func-registry -v ${faasPath}/funcData:/var/faas/funcData registry.baidubce.com<your_namespace>/<your_func_registry_image_name>:<your_image_tag>

备注:更详细的参数,可以参考方式二中的docker-compose.yaml文件

5. 操作运行

运行步骤