docker-为 Postgre、Cordite、Corda 节点和后端服务器编写文件

docker-compose file for Postgre, Cordite, Corda node and backend server

我正在寻找一个 docker-compose 文件,它将包括 Postgre、Cordite、Corda 节点和相应的后端服务器(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 图像更新它查找的内容。

编辑: 线下提出的一些问题:

"How to place the cordapp or mount the cordapp?"

您有 2 个选择,要么创建您自己的 Docker 图像,该图像从 cordite 图像扩展而来,然后将您的 CorDapps 放入 CorDapp 文件夹中。或者使用卷挂载来允许 运行 容器看到你的 CorDapps(它将存在于主机上)。详细信息在这里 https://hub.docker.com/r/cordite/cordite/ 具体来说,您可以挂载到 /opt/corda/cordapps 以覆盖 CorDapps。

"How to add my springboot service for each node?"

只需将新服务添加到使用您的 Springboot 服务器 docker 映像的 docker-compose.yml 文件。示例中有 3 个“正常”节点 docker-compose.yml emeaapacamer。我猜你想为每一个创建一个新的 Springboot 服务。