我正在使用docker stack在具有两个节点的集群网络上部署一些服务。我创建了可以看到的覆盖网络
docker network ls
,但是当我尝试在docker stack文件中使用该网络时,我不断收到错误Network undefined
。
这是我的Docker堆栈文件
version: '3.4'
services:
orderer1st:
image: hyperledger/fabric-orderer:1.2.1
networks:
- fabricoverlay
ports:
- 7050:7050
environment:
- ORDERER_GENERAL_LOGLEVEL=info
- ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
- ORDERER_GENERAL_GENESISMETHOD=file
- ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/orderer.genesis.block
- ORDERER_GENERAL_LOCALMSPID=OrdererMSP
- ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
command: orderer
volumes:
- ./channel-configuration/orderer.genesis.block:/var/hyperledger/orderer/orderer.genesis.block
- ./msp:/var/hyperledger/orderer/msp
我在这里做错什么了吗?我不知道为什么docker stack无法选择覆盖网络
Docker版本:
Client:
Version: 18.06.1-ce
API version: 1.38
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:24:56 2018
OS/Arch: linux/amd64
Experimental: false
Server:
Engine:
Version: 18.06.1-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: e68fc7a
Built: Tue Aug 21 17:23:21 2018
OS/Arch: linux/amd64
Experimental: false
答案 0 :(得分:2)
您必须将网络添加为root objects in the compose file,以便服务知道如何找到它。
networks:
fabricoverlay:
external: true
请注意,一个更简单的选择可能是让swarm为您的堆栈创建该网络。只需删除撰写文件中的网络引用,删除手动创建的网络,然后部署堆栈。 Docker将为您创建它,每个堆栈一个网络。