[英]Docker-compose on 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
我的 dockerfile 是
FROM node:14.16.0-alpine3.13
WORKDIR /app
COPY . .
CMD ["yarn", "dev"]
我的 docker-compose.yml 是
version: '3.8'
services:
client:
build:
context: ./dockerfiles
dockerfile: client.dockerfile
volumes:
- ./client:/app
ports:
- '3000:3000'
我的文件夾結構是
client
|-public
|-src
|-node_modules
|-package.json
|-vite.config.ts
|- ... rest of files
dockerfiles
|-client.dockerfile
docker-compose.yml (at root level)
我遇到了同樣的問題,由於某種原因 docker 使用了項目中的node_modules
文件夾而不是它自己的文件夾(使用RUN npm install
命令)。 我通過添加.dockerignore
文件並忽略項目的node_modules
解決了這個問題。
//.dockerignore
node_modules/*
在我的例子中,我必須在 docker 容器中運行項目,並使用 docker compose 運行前端以及其他容器,讓項目在本地運行。 我已經安裝了 vite 的定義版本,例如npm install vite@3.2.2
然后 docker 需要 esbuild 為 Linux package for windows 和 arm64 for mac 所以我強制安裝esbuild-linux-64
6然后使用命令docker-compose up
來運行容器並且它工作了。
我還沒有完全弄清楚這一點,但我認為它與高山節點圖像有關。 嘗試改用節點的“纖細”圖像之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.