Vite 上的 Docker-compose

Fra*_*tin 8 node.js docker docker-compose vite

我正在使用 Vue 对接 Vite 应用程序。当我yarn dev从系统运行时,一切正常,但是当我从 dockerfile 启动相同的命令时,出现以下错误

yarn run v1.22.5

warning package.json: No license field

$ vite

failed to load config from /app/vite.config.ts

error when starting dev server:

Error: spawn Unknown system error -8

Run Code Online (Sandbox Code Playgroud)

我的dockerfile是

FROM node:14.16.0-alpine3.13

WORKDIR /app

COPY . .

CMD ["yarn", "dev"]
Run Code Online (Sandbox Code Playgroud)

我的 docker-compose.yml 是

version: '3.8'

services:
  client:
    build: 
      context: ./dockerfiles
      dockerfile: client.dockerfile
    volumes:
      - ./client:/app
    ports:
      - '3000:3000'
Run Code Online (Sandbox Code Playgroud)

我的文件夹结构是

client
|-public
|-src
|-node_modules
|-package.json
|-vite.config.ts
|- ... rest of files
dockerfiles
|-client.dockerfile
docker-compose.yml (at root level)
Run Code Online (Sandbox Code Playgroud)

Fim*_*Taf 12

我遇到了同样的问题,由于某种原因,docker 使用了node_modules项目中的文件夹而不是它自己的文件夹(使用RUN npm install命令)。我通过添加.dockerignore文件并忽略node_modules项目的来解决了这个问题。

//.dockerignore

node_modules/*
Run Code Online (Sandbox Code Playgroud)


tyl*_*r-g 1

我还没有完全弄清楚这一点,但我认为这与高山节点图像有关。尝试使用节点的“苗条”图像之一。