使用 nginx 映像进行多阶段 docker 构建

时间:2021-07-30 12:03:11

标签: docker nginx

我正在尝试为 React 项目应用构建 nginx 映像。

这是我的 Dockerfile:

FROM node:14-alpine as myapp
EXPOSE 3000
WORKDIR = /snakeapp
COPY package.json .
RUN yarn install --network-timeout 1000000
COPY . .
RUN yarn build

FROM nginx
COPY --from=myapp /snakeapp/build /usr/share/nginx/html
EXPOSE 8080
CMD ["nginx", "-g", "daemon off;"]

我在构建映像过程中遇到的错误是:

...
Status: Downloaded newer image for nginx:latest
 ---> 08b152afcfae
Step 9/11 : COPY --from=myapp /snakeapp/build /usr/share/nginx/html
COPY failed: stat snakeapp/build: file does not exist

你能给我一个提示,哪个目录不存在。

如果我只创建第一个图像,ls /snakeapp 会显示以下内容,因为我们可以看到构建文件存在。

/= /snakeapp # ls
build              package-lock.json  src                yarn.lock
node_modules       package.json       webpack.config.js

1 个答案:

答案 0 :(得分:2)

您注意到奇怪的文件夹名称 /= /snakeapp 了吗?那是因为 WORKDIR = ...。删除那个 =

WORKDIR /snakeapp