npm run build 在本地工作,但不能脱离 Docker 镜像

问题描述 投票:0回答:1

我正在尝试 dockerise 一个基本的 Vite React 应用程序,但收到一个我不明白的错误:

 => [builder 4/6] RUN npm install                                                                                 37.6s
 => [builder 5/6] COPY . .                                                                                         0.5s
 => ERROR [builder 6/6] RUN npm run build                                                                          1.5s
------
 > [builder 6/6] RUN npm run build:
0.589
0.589 > [email protected] build
0.589 > tsc && vite build
0.589
1.529 ✘ [ERROR] Cannot start service: Host version "0.18.15" does not match binary version "0.18.16"
1.529
1.529 1 error
1.534 failed to load config from /app/vite.config.ts
1.534 error during build:
1.534 Error: The service was stopped: write EPIPE
1.534     at /app/node_modules/esbuild/lib/main.js:1083:25
1.534     at responseCallbacks.<computed> (/app/node_modules/esbuild/lib/main.js:703:9)
1.534     at afterClose (/app/node_modules/esbuild/lib/main.js:693:28)
1.534     at /app/node_modules/esbuild/lib/main.js:2142:11
1.534     at onwriteError (node:internal/streams/writable:418:3)
1.534     at process.processTicksAndRejections (node:internal/process/task_queues:84:21)
------
Dockerfile:6
--------------------
   4 |     RUN npm install
   5 |     COPY . .
   6 | >>> RUN npm run build
   7 |
   8 |     FROM nginx
--------------------
ERROR: failed to solve: process "/bin/sh -c npm run build" did not complete successfully: exit code: 1

这是 Dockerfile:

FROM node:alpine as builder
WORKDIR '/app'
COPY package.json .
RUN npm install
COPY . .
RUN npm run build
 
FROM nginx
COPY --from=builder /app/build /usr/share/nginx/html

我只是尝试将构建容器化以与 nginx 一起服务,作为 Docker 课程的一部分。

我无法识别错误中描述的版本号:主机 0.18.15 与二进制 0.18.16。这些不是 Typescript 或 Vite(使用 npm run build 调用的 CLI 工具)的版本号,也不是 Node - 我目前正在运行 Node 19.1.0,并尝试在 Dockerfile 中使用不同的 Node 映像。

我不确定如何进一步进行修复。我之前也尝试过在 WSL 中构建,但遇到了不同的问题。

docker npm dockerfile vite
1个回答
0
投票

我也有同样的问题。忘记我的 tsconfig.json

© www.soinside.com 2019 - 2024. All rights reserved.