2017-10-18 15 views
1

開始エラーコンテナ:プラットフォーム固有のドッキングウィンドウ ビルドの生成に失敗しました:パッケージをロードすることはできません1」:エラーがビルドから返されたパッケージ ../../bin/github .COM/hyperledger /ファブリック/ chaincode /ビー玉:オープン /bin/github.com/hyperledger/fabric/chaincode/marbles:そのようなファイルやディレクトリ なしHyperledger生地:ピアchaincodeのインスタンス化エラー

私はそれが相対ディレクトリを探して見ますチェーンコードがインストールされている場合、なぜインスタンス化のピア1のためにそれを見つけることができないのですか?1ソロ発注者のチャネルは正常に結び付けられました。

+0

コンテナにインストールされていない依存パッケージが必要なため、チェーンコードをコンパイルできないようです。 – christo4ferris

答えて

2

Chaincodeをインストールするには、あなたのchaincodeパスが正しくマッピングされているという意味ではありません、

peer chaincode install -p {path} -n {} -v {} 

Chaincodeのインスタンス化を構築し、あなたのchaincodeをインスタンス化します。

peer chaincode instantiate -n {} -v {} -c {} -C {} 
  • ドッキングウィンドウのコンポーズファイルでは、二重 CLIのボリューム/ chaincodeマッピングを確認してください。
  • チェーンコードのインストール時に実際のパスを使用してください。
+0

チェーンコードが入っているディレクトリ、つまり-p ./からインストールしました。再インストールしようとすると、既に存在する正しいエラーが返されます。 Chaincode.0ファイルは/ var/hyperledger/production/chaincodesにあります。ドッカーを使用していません。私はそれがインストールでOKだと知っていると私はそれが0ブロックを受信したとか、そういうものだと信じています。 – jworthington

+0

ああ。したがって、チェーンコードのパスは、何とかgopathに関連するgithub.com/hyperledger/fabric/chaincode/ccnameのようなものでなければなりません。フルパスは/usr/local/go/src/github.com/hyperledger/fabric/chaincode/ccnameです。 $ GOPATHは/ usr/local/go/binです。 $ GOROOTは/ usr/local/goです。だから、ファブリックは$ GOROOT/src /?奇妙だと思うが動作する。 thx – jworthington

+0

はい、/ opt/gopath/src / –

0

パスマッピングに「隠された」期待があります。 gopathの下に/ srcディレクトリがあり、私がそれを理解するまで私にいくつかの問題を引き起こすことを期待しています。ここで

は、私の解決策のFWIWです:あなたはENV変数を設定しますピアのためのあなたのコンYAMLで

- GOPATH=/opt/gopath

次にCLIであなたは、このようにインストールしてインスタンス化することができます

SIGNED_CHAINCODE_LOCATION=/opt/gopath/src/chaincode/<cc_dir>/<signed_cc>.out 

peer chaincode install /${SIGNED_CHAINCODE_LOCATION} 

そして、通常どおりにインスタンス化します。 パッケージや署名の必要がない場合は、.outファイルの代わりにディレクトリを使用してください。

私の場合は、チェーンコードをベースブロックチェーンディレクトリの相対ディレクトリに設定している作業ディレクトリをピアに追加しました:- ./chaincode/:/opt/gopath/src/chaincode/とそこにgoフォルダがダンプされました。

関連する問題