Docker / NodeJS:“exec:\” – d \“:在$ PATH中找不到可执行文件”
从NodeJS 8.2升级到9.1后,运行Docker容器时出现问题。 这是我得到的消息。
我使用了在Docker Hub中find的Dockerfile,但遇到了无法findpackage.json的错误。 所以我评论说,并使用我在NodeJS网站上find的那个。
以下是Docker文件:
Dockerfile
FROM node:9.1.0 RUN mkdir -p /usr/src/app WORKDIR /usr/src/app ONBUILD ARG NODE_ENV ONBUILD ENV NODE_ENV $NODE_ENV ONBUILD COPY package*.json ./ ONBUILD RUN npm install && npm cache clean --force ONBUILD COPY . /usr/src/app CMD [ "npm", "start" ]
我会感谢更有经验的用户的帮助。
你引用的Dockerfile是用来作为你的应用程序的一个简单的dockerization的父图像。
因此,为了dockerize你的nodejs应用程序,你需要使用由dockerfile创build的docker镜像创build一个dockerfile。
每当使用该特定图像构build新图像作为父图像( FROM
指令)时, ONBUILD
指令ONBUILD
执行。 更多信息
我从来没有像这样使用过一个图像,但从它的外观来看,它应该足以使用FROM
指令引用图像,然后通过构build参数提供NODE_ENV
。
dockerfile添加到您的项目中:
FROM this_image:9.1
如何构build您的应用程序图像:
docker build -t IMAGE_NAME:TAG --build-arg NODE_ENV=production .
您的docker run
命令语法是错误的。 映像名称之后的所有内容都用于覆盖在容器中运行的命令。 所以docker run myimage -d
将尝试在容器内部运行-d
,而docker run -d myimage
将使用-d
选项运行你的容器到docker运行(分离模式)。
- Docker在第一行之后停止
- Docker – 如何在图像创build过程中testing服务是否正在运行
- Docker容器在本地连接到MySQL数据库 – >redirect到另一个容器
- 在dockerfile上为apache构build使用COPY
- Dockerfile WORKDIR,ENTRYPOINT,VOLUME …适用于儿童图像吗?
- 是否有可能通过dockerFile构build图像时从.env文件获取值
- Docker java.lang.RuntimeException当试图build立错误
- 源码环境文件在docker中不工作
- Dockerconfiguration:Celery + RabbitMQ