javascript 我得到/bin/sh:[npm:在Docker中执行React图像时未发现错误

t0ybt7op  于 2023-01-01  发布在  Java
关注(0)|答案(3)|浏览(134)

我已经在react项目中添加了Dockerfile并运行了此命令docker build . -t *image name*。我的构建是成功的。但当我开始运行我的映像(docker run *imagename*)时,我收到了此错误/bin/sh: [npm: not found。我已在下面附上了我的Dockerfile详细信息:

FROM node:alpine
WORKDIR '/app'

COPY package.json .
RUN npm install
COPY . .
CMD ["npm" "start"]

有人能帮我纠正这个错误吗?

j9per5c4

j9per5c41#

我将使用以下内容修改Dockerfile:

FROM node:alpine
WORKDIR /app

COPY package.json .
RUN npm install
COPY . .
CMD ["npm", "start"]
nnsrf1az

nnsrf1az2#

如果这对其他人有帮助,

FROM node:15.13-alpine

WORKDIR /code/

#mapping environment path for node modules
ENV PATH="./node_modules/.bin:$PATH"

COPY package.json yarn.lock /code/
# COPY package-lock.json /code/

RUN npm install

#adding the rest of the client code 
COPY . /code/

EXPOSE 3000

CMD ["npm", "start"]

我所要做的就是修改第一行,将WORKDIR /code/修改为/code
公认的答案涵盖了这一点,但很容易错过,因为答案主要集中在改变最后一行,这不是我的情况。

uemypmqf

uemypmqf3#

我有同样的问题,然后按照node js document和更新我的Dockerfile和问题解决;

之前:

FROM node:16-alpine

COPY . . 
RUN npm i

CMD ['npm', 'start']

之后:

FROM node:16-alpine

WORKDIR /usr/src/app

COPY package*.json ./
RUN npm ci --only=production

COPY . . 
EXPOSE 8080
CMD ['npm', 'start']

# or CMD ['node', 'server.js']
# both works

相关问题