我正在寻找一个docker-compose文件,其中将包括Postgre,Cordite,Corda Nodes和相应的后端服务器( Spring 启动)。我可以分别运行Postgre,Cordite和Corda节点,但是我想将它们分组到一个文件中。我认为部署起来会很容易。
Cordite就是一个很好的开源示例。这是docker-compose.yml文件:https ://gitlab.com/cordite/cordite/blob/master/test/docker-compose.yml
这是启动脚本:https : //gitlab.com/cordite/cordite/-/blob/master/test/build_env.sh
这是“启动服务并等待其准备就绪”模式的示例:
docker-compose -p ${ENVIRONMENT_SLUG} up -d network-map
until docker-compose -p ${ENVIRONMENT_SLUG} logs network-map | grep -q "io.cordite.networkmap.NetworkMapApp - started"
do
echo -e "waiting for network-map to start"
sleep 5
done
因此,该up
命令启动服务,然后bash脚本每5秒从容器读取一次日志,并io.cordite.networkmap.NetworkMapApp - started
在日志中进行检查。显然,你需要根据要旋转的Docker映像来更新其查找内容。
编辑:离线提出的一些问题:
“如何放置cordapp或安装cordapp?”
你有2个选择,要么创建你自己的Docker映像(从Cordite扩展到此映像),然后将你的CorDapps放置在CorDapp文件夹中。或使用卷安装来允许运行中的容器查看你的CorDapps(将在主机上存在)。详细信息在这里https://hub.docker.com/r/cordite/cordite/特别地,你可以装入/opt/corda/cordapps
以覆盖CorDapps。
“如何为每个节点添加我的springboot服务?”
只需将新服务添加到使用你的Springboot服务器docker映像的docker-compose.yml文件即可。示例docker-compose.yml中有3个“普通”节点emea
,apac
而amer
。我猜你想为每个创建一个新的Springboot服务。
我已经使用网络引导程序工具引导了网络,并相应地组织了文件夹(检查节点文件夹)。Git链接我已经按照您提供的链接准备了docker-compose和shell脚本。我做了一些修改以安装cordapps。执行完Shell脚本后,Postgre,Cordite NMS和Notary节点将成功运行。但是执行以下命令时出现
docker exec ${NODE_ID} rm network-parameters
错误:错误:“资源繁忙”恐怕我不使用网络引导程序工具。node.conf是由docker入口点脚本创建的,而证书是以常规的“生产”方式创建的,即它们是由门卫生成的,并与节点一起存储。