如何运行 hyperedger/composer-cli docker image 来执行composer命令?
how to run hyperedger/composer-cli docker image to execute composer commands?
我想通过 docker 图像执行 composer 命令,而不是使用 composer-cli 的 npm 包。但目前在 运行 连接容器后它会立即退出。需要帮助 运行 这个容器正确配置。
此命令应为您构建容器:docker run -it --network composer_default -v ~/.composer:/home/composer/.composer --entrypoint "/bin/sh" hyperledger/composer-cli:latest
这将启动容器和一个交互式终端(-it
),并且由于备用入口点而保持运行。
另请注意,您需要在与其他 Fabric 容器相同的 Docker 桥上启动,并且开发结构使用 --network composer_default
您可能希望保留您使用的业务网络卡,以便在必须创建新的 cli 容器时它们可用,因此启动共享卷 -v ~/.composer:/home/composer/.composer
你还需要注意,默认的开发环境假设Fabric可以连接到地址localhost - BUT 这个当您在容器内时将无法工作 - 因此您需要替换 connection.json 中的 URL,以便 PeerAdmin 卡指向 Docker 网桥已知的地址。像这样的 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/
最后,如果您使用的是开发 Fabric,则需要创建 PeerAdmin Card。
我想通过 docker 图像执行 composer 命令,而不是使用 composer-cli 的 npm 包。但目前在 运行 连接容器后它会立即退出。需要帮助 运行 这个容器正确配置。
此命令应为您构建容器:docker run -it --network composer_default -v ~/.composer:/home/composer/.composer --entrypoint "/bin/sh" hyperledger/composer-cli:latest
这将启动容器和一个交互式终端(-it
),并且由于备用入口点而保持运行。
另请注意,您需要在与其他 Fabric 容器相同的 Docker 桥上启动,并且开发结构使用 --network composer_default
您可能希望保留您使用的业务网络卡,以便在必须创建新的 cli 容器时它们可用,因此启动共享卷 -v ~/.composer:/home/composer/.composer
你还需要注意,默认的开发环境假设Fabric可以连接到地址localhost - BUT 这个当您在容器内时将无法工作 - 因此您需要替换 connection.json 中的 URL,以便 PeerAdmin 卡指向 Docker 网桥已知的地址。像这样的 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/
最后,如果您使用的是开发 Fabric,则需要创建 PeerAdmin Card。