我已经从以下Dockerfile创建了映像。
FROM alpine
WORKDIR /usr/src/app
RUN apk add nodejs-current
RUN apk add nodejs-npm
RUN npm install pm2 -g
COPY process.yaml .
CMD pm2 start process.yaml --no-daemon --log-date-format 'DD-MM
HH:mm:ss.SSS'
process.yaml
看起来像这样:
- script: ./run-services.sh
watch : false
但是run-services.sh
不在我的Docker中运行。有什么问题吗?
答案 0 :(得分:1)
问题在于,在高山地区,bash
默认未安装。 pm2
通过bash
命令运行bash脚本文件。所以有两种方法可以解决问题:
将默认的pm2
解释器从bash
更改为/bin/sh
- script: ./run-services.sh
interpreter: /bin/sh
watch : false
在高山中安装bash
。因此,Dockerfile更改如下:
FROM alpine
RUN apk update && apk add bash
WORKDIR /usr/src/app
RUN apk add nodejs-current
RUN apk add nodejs-npm
RUN npm install pm2 -g
COPY process.yaml .
CMD pm2 start process.yaml --no-daemon --log-date-format 'DD-MM
HH:mm:ss.SSS'