FROM node:14
WORKDIR /front
COPY package*.json /front/
RUN npm install
COPY . /front
RUN npm run build
FROM nginx
COPY default.conf /etc/nginx/conf.d/City.conf
COPY ./dist /usr/share/nginx/City
这是我编写的Dockerfile文件,但是构建镜像的时候发现没有执行npm install
,自然也不会有dist文件,不知道是哪里写的有问题,请教一下大家
你下面的
COPY ./dist /usr/share/nginx/City
应该要加上
--form
参数,完整的例子:为什么要这样,首先你这个是一个多阶段构建,你在node:14这个步骤里面,已经执行了install和build,但是build后的文件是生成在这个阶段的node容器里面,不是在当前工作目录里面。 如果你需要在下一个阶段里拿到上一个阶段容器里面的文件,就需要在COPY的时候,指定从哪里拷贝。不指定的话,默认情况下就会从容器构建的工作目录下找。这样自然就找不到文件了。
官方的文档