升级到 composer 0.19.6 后,composer rest 服务器无法启动

composer rest server fails to start after upgrade to composer 0.19.6

docker logs -f rest 显示如下

[2018-05-28 06:38:39] PM2 log: Launching in no daemon mode
[2018-05-28 06:38:39] PM2 log: Starting execution sequence in -fork mode- for app name:composer-rest-server id:0
[2018-05-28 06:38:39] PM2 log: App name:composer-rest-server id:0 online
{ Error: Cannot find module 'base64-js'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:7:11309)
    at t (/home/composer/node_modules/swagger-client/dist/index.js:1:177)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:7:7)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:7:11111)
    at t (/home/composer/node_modules/swagger-client/dist/index.js:1:177)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:1:48717)
    at t (/home/composer/node_modules/swagger-client/dist/index.js:1:177)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:1:40420)
    at t (/home/composer/node_modules/swagger-client/dist/index.js:1:177)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:1:16408)
    at t (/home/composer/node_modules/swagger-client/dist/index.js:1:177)
    at Object.<anonymous> (/home/composer/node_modules/swagger-client/dist/index.js:1:15877) code: 'MODULE_NOT_FOUND' }
[2018-05-28 06:38:41] PM2 log: App [composer-rest-server] with id [0] and pid [14], exited with code [1] via signal [SIGINT]

我通过 npm 安装了 base64-js 但仍然出现相同的错误

https://github.com/hyperledger/composer/issues/4067 3 天前发布了一个错误的 swagger-client npm 模块,导致了这个问题。现已发布新版swagger-client 3.8.6 修复该问题

根据之前的回答和评论:

上周为 Composer 构建 Docker 图片时出现问题,因此带有 "latest" 标签的版本是 v0.19.5。

如果您在 Docker 集线器上查看此页面,您会发现问题所在:

https://hub.docker.com/r/hyperledger/composer-rest-server/tags/

作为临时措施,如果您 运行 这 2 个 docker 命令,您应该获得 v0.19.6 版本的图像,它将与您安装的 v0.19.6 模块兼容。

docker pull hyperledger/composer-rest-server:0.19.6-20180524041020

docker tag hyperledger/composer-rest-server:0.19.6-20180524041020 hyperledger/composer-rest-server:latest

我建议在使用上述命令之前使用 docker rmi 删除任何现有的 composer-rest-server 图像。

在后来的评论后更新 - 和道歉

对不起 - 我认为这会起作用并且这些版本会兼容。

现在要获得兼容性,您可以将所有内容重新安装到 v0.19.5 并使用上面的 'trick' 提取 composer-rest-server v0.19.5 并重命名为最新版本(删除了较早的版本第一)

您可以卸载 composer 并安装特定日期的版本以与容器版本兼容。 (您将需要重新启动结构并再次重新部署网络。)例如npm install -g composer-cli@0.19.6-20180524041020

我还没有测试过这个!