/root/start.sh: 第 5 行:/usr/bin/pm2: 没有那个文件或目录 - Docker 容器正在重启

/root/start.sh: line 5: /usr/bin/pm2: No such file or directory - Docker Container is restarting

我正在尝试 运行 在我的 Ubuntu 20.04 机器上 docker 容器集群存在于此存储库中:

https://github.com/Capgemini-AIE/ethereum-docker

我的docker文件:

FROM ethereum/client-go

RUN apk update && apk add bash
RUN apk add --update git bash nodejs npm perl

RUN cd /root &&\
git clone https://github.com/cubedro/eth-net-intelligence-api &&\
cd eth-net-intelligence-api &&\
npm install &&\
npm install -g pm2

ADD start.sh /root/start.sh
ADD app.json /root/eth-net-intelligence-api/app.json
RUN chmod +x /root/start.sh

ENTRYPOINT /root/start.sh

命令:

sudo docker-compose build
sudo docker-compose up -d

正确完成,但执行时:

docker exec -it ethereum-docker-master_eth_1 geth attach ipc://root/.ethereum/devchain/geth.ipc

我有这个错误:

ERROR: Container 517e11aef83f0da580fdb91b6efd19adc8b1f489d6a917b43cc2d22881b865c6 is restarting, wait until the container is running

原因是,正在执行:

docker 日志 ethereum-docker-master_eth_1

结果:\

/root/start.sh: line 5: /usr/bin/pm2: No such file or directory\
/root/start.sh: line 5: /usr/bin/pm2: No such file or directory\
/root/start.sh: line 5: /usr/bin/pm2: No such file or directory

为什么我会遇到这个问题?在 Docker 文件中我有命令:

RUN npm install -g pm2

我该如何解决这个问题?

当我用这个 dockerfile 构建镜像然后检查其中的文件时,我发现 pm2 安装在 /usr/local/bin/pm2:

因此您需要将脚本中的调用更改为

/usr/local/bin/pm2