Docker部署
本文档介绍TuGraph Compile及TuGraph Runtime的Docker镜像的创建、下载。
1.简介
TuGraph Compile Image:提供编译环境,可以用于TuGraph的编译,测试;
TuGraph Runtime Image:提供二进制可运行环境,附带TuGraph库和可执行文件;
TuGraph Mini Runtime Image: 提供二进制可运行环境,不包含TuGraph中Java、Python相关的功能,无C++ plugin编译运行,仅so上传。
2.现有Docker Image
2.1.镜像下载方式
镜像托管在DockerHub,可直接下载使用。
最新版本的Docker地址参见 文档地图的”TuGraph最新版本”章节。
2.2.命名规范
2.2.1.TuGraph Compile Image
提供编译环境,可以用于TuGraph的编译。
tugraph/tugraph-compile-[os name & version]:[tugraph compile version]
例如: tugraph/tugraph-compile-centos7:1.2.0
2.2.2.TuGraph Runtime Image
提供二进制可运行环境,附带TuGraph库和可执行文件。
tugraph/tugraph-runtime-[os name & version]:[tugraph-runtime version]
例如:tugraph/tugraph-runtime-centos7:3.4.0
2.2.3.TuGraph Mini Runtime Image
提供二进制可运行环境,不包含TuGraph种Java、Python相关的功能,无C++ plugin编译运行,仅so上传。
tugraph/tugraph-mini-runtime-[os name & version]:[tugraph-runtime version]
例如: tugraph/tugraph-mini-runtime-centos7:3.4.0
2.3.常见Docker操作
Docker由Dockerfile生成,注意创建镜像需要下载依赖,因此网络问题可能会导致创建较慢或者创建失败。注意不要覆盖镜像,除非tag为 latest
。
创建Compile镜像
docker build -f tugraph-compile-centos7-Dockerfile -t tugraph/tugraph-compile-centos7:1.2.0 .
创建Runtime / Mini Runtine镜像
docker build --build-arg FILEPATH="${rpm_path_in_oss}" --build-arg FILENAME="${rpm_name}" -f tugraph-compile-centos7-Dockerfile -t tugraph/tugraph-runtime-centos7:1.2.0 .
修改镜像名称
docker tag ${image_name}:${image_tag} tugraph/tugraph-runtime-centos7:3.3.0
上传镜像
docker push tugraph/tugraph-compile-centos7:1.2.0 .
获取镜像
docker pull tugraph/tugraph-compile-centos7:1.2.0
导出镜像
docker save ${image_name}:${image_tag} | gzip > lgraph_latest.tar.gz
导入镜像
docker load --input lgraph_latest.tar.gz
其他Docker操作请参考docker官方文档
2.4. M1芯片支持
在 M1 芯片的机器上运行 amd64 容器可能造成未知错误。TuGraph提供 arm64 的镜像供 M1 机器使用。 包含compile和runtime两种镜像。
在tugraph-runtime-centos7:3.6.0
与tugraph-compile-centos7:1.2.7
及之后,tugraph-runtime-centos7
与tugraph-compile-centos7
提供linux/amd64和linux/arm64/v8两种架构的镜像,可以在 M1 机器上通过docker pull获取arm64架构镜像。
3. 使用和开发TuGraph-DB Docker镜像时的最佳实践
在您刚开始为TuGraph做出贡献时,请仔细阅读以下要点,并遵循它们。
为了避免过多的Docker Layer,请尽量像现有的Dockerfile一样单行的写ENV和RUN将您的依赖项添加到Docker中。
对于您需要构建依赖项的软件包/资源,请使用原始的软件包/资源,而不是在没有VCS跟踪的情况下修改这些资源。之后联系TuGraph团队将其上传到OSS以加速构建过程,如同您在Dockerfiles中看到的URL一样。
为了使开发更加高效,最好从Base TuGraph编译镜像添加依赖项开始,完成开发确认依赖没问题后在Dockerfile中重新复制该过程。
CI使用了Docker镜像。如果您的CI失败,请检查依赖项问题。