docker 无法启动容器进程:exec:“npm run start”可执行文件未在$PATH中找到未知

mm9b1k5b  于 2023-06-21  发布在  Docker
关注(0)|答案(1)|浏览(205)

我有一个应用程序,我已经集装箱。这是它的Dockefile:

FROM front-end-base:latest
COPY ... /app/...
...
EXPOSE 5000
RUN cd /app
CMD ["npm run start"]

前端基础安装了Node、NPM、Yarn和其他一些软件包。dockerfile复制应用程序的文件,使用yarn从yarn.lock安装它们,公开端口,然后使用npm启动应用程序。
但是,我得到以下错误:

"Failed to run image. Error invoking remote method 'docker-run-container' - fail to create task for container: fail to create shim task: OCI runtime create failed: unable to start container process exec: "npm run start": executable file not found in $PATH unknown

我的最终目标是让它在Docker Dev环境中工作。然而,我从命令行、运行图像的GUI以及创建开发环境过程中得到了上述错误。
然而,如果我把最终的图像,而不是试图运行应用程序只是猛击到它通过

docker run -it fe-test:latest /bin/bash -l

容器成功启动,我能够导航到/app目录和可执行文件“npm run start”,没有任何错误。
我在网上发现其他几个人问了一些半相关的问题,但答案要么对我不起作用,要么与我的情况无关。
任何帮助将不胜感激。

ruarlubt

ruarlubt1#

我在发布后不久就意识到了这个问题。
由于我安装npm/node/yarn的方式(通过brew安装),应用程序不位于/usr/bin/npm,而是位于brew下的主目录。
这就是为什么它抱怨它们不在路径上,要么直接引用完整路径(npm),要么创建系统链接将解决问题。

相关问题