Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在docker alpine映像上的pm2中运行bash脚本_Bash_Docker_Pm2_Alpine - Fatal编程技术网

无法在docker alpine映像上的pm2中运行bash脚本

无法在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如下所示: -

我已经从下面的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

但是
运行服务。sh
不会在我的docker中运行。问题是什么?

问题是在alpine中,默认情况下没有安装
bash
pm2
通过
bash
命令运行bash脚本文件。所以有两种方法可以解决这个问题:

  • 将默认的
    pm2
    解释器从
    bash
    更改为
    /bin/sh

    - script: ./run-services.sh
      interpreter: /bin/sh
      watch : false
    
  • 在alpine中安装
    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'