无法在docker alpine映像上的pm2中运行bash脚本
我已经从下面的Dockerfile创建了一个图像无法在docker alpine映像上的pm2中运行bash脚本,bash,docker,pm2,alpine,Bash,Docker,Pm2,Alpine,我已经从下面的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如下所示: -
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
但是
运行服务。sh
不会在我的docker中运行。问题是什么?问题是在alpine中,默认情况下没有安装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'