取而代之的是使用composer-cli的npm软件包,我想通过docker image执行composer命令。但是当前运行容器后,它立即退出。需要帮助以正确的配置运行此容器。
最佳答案
此命令应为您构建容器:docker run -it --network composer_default -v ~/.composer:/home/composer/.composer --entrypoint "/bin/sh" hyperledger/composer-cli:latest
这将启动容器并使用交互式终端(-it
),并且由于备用入口点而无法启动。
还要注意,您需要与其他Fabric容器在同一Docker Bridge上启动,并且开发Fabric使用--network composer_default
您可能需要保留使用的业务网卡,以便在必须创建新的cli容器时可以使用它们,因此请启动共享卷-v ~/.composer:/home/composer/.composer
您还需要注意,默认的开发环境假定可以将Fabric连接在本地主机上-但是,当您位于容器中时,它将不起作用-因此,您将需要替换连接中的URL。 PeerAdmin卡的json指向Docker Bridge已知的地址。这样的sed
命令应该为您更改地址。sed -e 's/localhost:7051/peer0.org1.example.com:7051/' -e 's/localhost:7053/peer0.org1.example.com:7053/' -e 's/localhost:7054/ca.org1.example.com:7054/' -e 's/localhost:7050/orderer.example.com:7050/' < $HOME/.composer/cards/PeerAdmin@hlfv1/connection.json > /tmp/connection.json && cp -p /tmp/connection.json $HOME/.composer/cards/PeerAdmin@hlfv1/
最后,如果您使用的是Development Fabric,则需要创建PeerAdmin卡。
关于docker - 如何运行hyperedger/composer-cli docker镜像以执行composer命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50926131/