From b4cb0c3e9da38aaf6235abca5d0f3177b200bdf6 Mon Sep 17 00:00:00 2001 From: rameshbabu79 Date: Tue, 31 Jan 2017 23:33:04 +0000 Subject: [PATCH] Update docker-compose with ports and image names Updated ports and sfhackfest dockerimage names in docker-compose file and updated grep condition in channel_test.sh file Change-Id: Ie06c14aafda7bed4326ffd7ac1dc597cf9bb0b66 Signed-off-by: rameshbabu79 --- examples/sfhackfest/ccenv/Dockerfile | 2 +- examples/sfhackfest/channel_test.sh | 4 ++- .../docker-compose-gettingstarted.yml | 31 ++++++++++-------- examples/sfhackfest/sfhackfest.tar.gz | Bin 10261 -> 10266 bytes 4 files changed, 21 insertions(+), 16 deletions(-) diff --git a/examples/sfhackfest/ccenv/Dockerfile b/examples/sfhackfest/ccenv/Dockerfile index 20adc18293e..7df1fd8cb3a 100644 --- a/examples/sfhackfest/ccenv/Dockerfile +++ b/examples/sfhackfest/ccenv/Dockerfile @@ -1,2 +1,2 @@ -FROM rameshthoomu/fabric-ccenv-x86_64:x86_64-0.7.0-snapshot-3ee280e +FROM sfhackfest22017/fabric-ccenv:x86_64-0.7.0-snapshot-c7b3fe0 diff --git a/examples/sfhackfest/channel_test.sh b/examples/sfhackfest/channel_test.sh index 973330c89f1..919c5468ffb 100644 --- a/examples/sfhackfest/channel_test.sh +++ b/examples/sfhackfest/channel_test.sh @@ -3,7 +3,8 @@ #create echo "Creating channel on Orderer" CORE_PEER_MSPCONFIGPATH=/etc/hyperledger/fabric/msp/sampleconfig CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 peer channel create -c myc1 >>log.txt 2>&1 - grep -q "Serializing identity" log.txt +cat log.txt + grep -q "Exiting" log.txt if [ $? -ne 0 ]; then echo "ERROR on CHANNEL CREATION" >> results.txt exit 1 @@ -16,6 +17,7 @@ while test $i -lt $TOTAL_PEERS do echo "###################################### Joining peer$i" CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 CORE_PEER_ADDRESS=peer$i:7051 peer channel join -b myc1.block >>log.txt 2>&1 +cat log.txt echo '-------------------------------------------------' grep -q "Join Result: " log.txt if [ $? -ne 0 ]; then diff --git a/examples/sfhackfest/docker-compose-gettingstarted.yml b/examples/sfhackfest/docker-compose-gettingstarted.yml index 2b5dacb8edf..9078c361161 100644 --- a/examples/sfhackfest/docker-compose-gettingstarted.yml +++ b/examples/sfhackfest/docker-compose-gettingstarted.yml @@ -14,14 +14,14 @@ services: ccenv_snapshot: container_name: ccenv_snapshot build: ./ccenv - image: hyperledger/fabric-ccenv:x86_64-0.7.0-snapshot-3ee280e + image: hyperledger/fabric-ccenv:x86_64-0.7.0-snapshot-c7b3fe0 volumes: - ./ccenv:/opt/gopath/src/github.com/hyperledger/fabric/orderer/ccenv ca: - image: rameshthoomu/fabric-ca-x86_64:x86_64-0.7.0-snapshot-f5291e7 + image: sfhackfest22017/fabric-ca:x86_64-0.7.0-snapshot-6294c57 ports: - - "7054:7054" + - 8054:7054 environment: - CA_CERTIFICATE=peerOrg0_cert.pem - CA_KEY_CERTIFICATE=peerOrg0_pk.pem @@ -33,7 +33,7 @@ services: orderer: container_name: orderer - image: rameshthoomu/fabric-orderer-x86_64:x86_64-0.7.0-snapshot-3ee280e + image: sfhackfest22017/fabric-orderer:x86_64-0.7.0-snapshot-c7b3fe0 environment: - ORDERER_GENERAL_LEDGERTYPE=ram - ORDERER_GENERAL_BATCHTIMEOUT=10s @@ -49,13 +49,13 @@ services: - ./tmp/orderer:/etc/hyperledger/fabric/orderer command: orderer ports: - - 7050:7050 + - 8050:7050 networks: - bridge peer0: container_name: peer0 - image: rameshthoomu/fabric-peer-x86_64:x86_64-0.7.0-snapshot-3ee280e + image: sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 environment: - CORE_PEER_ADDRESSAUTODETECT=true - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock @@ -67,11 +67,12 @@ services: - CORE_PEER_PROFILE_ENABLED=true - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 - CORE_PEER_GOSSIP_ORGLEADER=true + - CORE_PEER_GOSSIP_IGNORESECURITY=true working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer ports: - - 7051:7051 - - 7053:7053 + - 8051:7051 + - 8053:7053 links: - orderer:orderer volumes: @@ -82,7 +83,7 @@ services: peer1: container_name: peer1 - image: rameshthoomu/fabric-peer-x86_64:x86_64-0.7.0-snapshot-3ee280e + image: sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 environment: - CORE_PEER_ADDRESSAUTODETECT=true - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock @@ -94,9 +95,10 @@ services: - CORE_PEER_PROFILE_ENABLED=true - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 - CORE_PEER_GOSSIP_ORGLEADER=true + - CORE_PEER_GOSSIP_IGNORESECURITY=true working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer ports: - - 8051:7051 + - 8055:7051 command: peer node start --peer-defaultchain=false links: - orderer:orderer @@ -109,7 +111,7 @@ services: peer2: container_name: peer2 - image: rameshthoomu/fabric-peer-x86_64:x86_64-0.7.0-snapshot-3ee280e + image: sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 environment: - CORE_PEER_ADDRESSAUTODETECT=true - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock @@ -121,10 +123,11 @@ services: - CORE_PEER_PROFILE_ENABLED=true - CORE_PEER_COMMITTER_LEDGER_ORDERER=orderer:7050 - CORE_PEER_GOSSIP_ORGLEADER=true + - CORE_PEER_GOSSIP_IGNORESECURITY=true working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer ports: - - 9051:7051 + - 8056:7051 command: peer node start --peer-defaultchain=false links: - orderer:orderer @@ -138,7 +141,7 @@ services: cli: container_name: cli - image: rameshthoomu/fabric-peer-x86_64:x86_64-0.7.0-snapshot-3ee280e + image: sfhackfest22017/fabric-peer:x86_64-0.7.0-snapshot-c7b3fe0 tty: true environment: - GOPATH=/opt/gopath @@ -152,7 +155,7 @@ services: - CORE_PEER_ADDRESS=peer0:7051 working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer command: sh -c './channel_test.sh; sleep 10000' -# command: /bin/sh +# command: /bin/sh links: - orderer:orderer - peer0:peer0 diff --git a/examples/sfhackfest/sfhackfest.tar.gz b/examples/sfhackfest/sfhackfest.tar.gz index 69579b07ef0eb0eb093581eb00fe4e2ceb804105..63dde622c4c4b2dfe941aa3715150a67b287affc 100644 GIT binary patch delta 9933 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 delta 9955 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