万纳链(Venachain)是万向区块链基于PlatONE底层开源平台,针对企业级客户和开发者在数字化转型过程中的实际需求,推出的自主可控的高性能联盟链,已通过中国电子标准化研究院的功能与性能双项测试。依托万向区块链丰富的技术与生态资源,万纳链具备出色的关联技术耦合能力,通过与隐私计算、物联网、知识图谱等技术融合,引航分布式认知技术的创新和实践。同时,结合团队出色的机制设计能力,万纳链旨在为实体经济的数字化转型打造可信数字底座,为企业级客户和开发者提供隐私安全、性能优越、一键部署、功能丰富的综合解决方案。
我们将通过一系列技术科普文章,帮助大家了解万纳链的技术特点和操作方法。今天我们一起来了解万纳链如何进行容器化一键部署。
本文作者:万向区块链通用架构技术部 吴经文
容器化一键部署需要借助以下这些功能的实现来完成:
一、设计思路
- 提供 镜像编译 的功能,包括编译环境镜像和Venachain镜像。
- 容器化部署 能够分步实现。
- 将分步部署的流程通过脚本串起来,实现 一键部署 ,且和多机部署一样要支持日志管理。
二、一键部署流程设计
三、镜像编译
更新文件
Makefile
1. 添加 .PHONY: docker
Makefile .PHONY: geth android ios geth-cross swarm evm docker all test clean |
2. 添加版本参数 VENACHAIN_VERSION
Makefile VENACHAIN_PATH=$(shell pwd) VERSION_MAJOR=$(shell cat ${VENACHAIN_PATH}/params/version.go | grep "VersionMajor\( \)*=" | sed 's/\(.*\)= \([0-9]*\)\(.*\)/\2/g') VERSION_MINOR=$(shell cat ${VENACHAIN_PATH}/params/version.go | grep "VersionMinor\( \)*=" | sed 's/\(.*\)= \([0-9]*\)\(.*\)/\2/g') VERSION_PATCH=$(shell cat ${VENACHAIN_PATH}/params/version.go | grep "VersionPatch\( \)*=" | sed 's/\(.*\)= \([0-9]*\)\(.*\)/\2/g') VERSION_META=$(shell cat ${VENACHAIN_PATH}/params/version.go | grep "VersionMeta\( \)*=" | sed 's/\(.*\)= "\(.*\)"\(.*\)/\2/g') VENACHAIN_VERSION = ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}-${VERSION_META} |
3. 添加 make docker:
Makefile docker: docker build -t harbor.i.wxblockchain.com/venachain/venachain:v$(VENACHAIN_VERSION) . |
新增文件
Dockerfile
位置