【问题标题】:Docker | PM2 | Bash - PM2 error: Error: Interpreter bash is NOT AVAILABLE in PATH码头工人 | PM2 | Bash - PM2 错误:错误:解释器 bash 在 PATH 中不可用
【发布时间】:2021-05-14 14:43:28
【问题描述】:

我正在尝试 Dockerize 一个运行 shell 脚本的 pm2 服务器,但我不断收到此错误 PM2 error: Error: Interpreter bash is NOT AVAILABLE in PATH。 shell 脚本直接在终端中运行,并且能够记录“测试”,当我在没有 pm2 的 Docker 中运行 shell 脚本时,也会记录“测试”。我尝试使用命令which bash 来获取正确的路径,它返回/usr/bin/bash。路径已添加到配置文件中,但错误仍然存​​在。

start.sh

#!/bin/sh
echo "Testing"

生态系统.config.js

module.exports = {
  apps: [{
    script: './start.sh',
    intepreter: '#!/bin/sh',
  }]
};

Docker 文件

FROM keymetrics/pm2:latest-alpine

COPY . .

RUN npm install pm2 -g

ENV PM2_PUBLIC_KEY <public key>
ENV PM2_SECRET_KEY <secret key>

COPY ecosystem.config.js .

CMD ["chmod", "+x", "./start.sh"]

CMD ["pm2-runtime","start","ecosystem.config.js"]

我收到错误 PM2 error: Error: Interpreter bash is NOT AVAILABLE in PATH

【问题讨论】:

    标签: bash docker shell devops pm2


    【解决方案1】:

    此 docker 映像中没有 bash 命令。 取而代之的是,您可以使用ashsh 命令。

    要检查图像是否包含 bash 等特定命令,请尝试使用:

    docker run --rm -it --name <container_name> <image_name> bash
    

    如果 bash 不起作用,则使用 ashsh 更改 bash。如果此命令有效,您将进入容器命令行。

    【讨论】:

    • 你指的是这个docker镜像FROM keymetrics/pm2:latest-alpine吗?
    • 是的。我现在为你检查了这些图像。该图像中没有 bash 命令。
    • 如果我要查找一个新的 Docker 映像,我怎么知道它包含 bash 命令?
    • 试试这个命令:docker run --rm -it --name &lt;container_name&gt; &lt;image_name&gt; &lt;bash or ash or sh&gt; 如果 bash 不起作用,用 ash 或 sh 更改 bash。如果此命令有效,您将进入容器命令行。
    • 我用 sh 和 ash 运行命令,错误仍然存​​在。
    猜你喜欢
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-11
    • 1970-01-01
    相关资源
    最近更新 更多