You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows环境下Docker容器中npm命令执行异常求助

Docker化FastAPI/Postgres/Vite React项目在Windows启动失败

问题概述

我开发的个人项目采用FastAPI/Postgres/Vite React技术栈并完成Docker化,在Mac环境下运行正常,但在Windows机器上出现异常:日志行首字符被行尾字符替换,执行npm install和npm run dev命令时均报错,导致ghi容器无法正常启动。

错误日志

"ad-draft-v-2-ghi-1       | Unknown command: "install
mad-draft-v-2-ghi-1       |
mad-draft-v-2-ghi-1       | Did you mean one of these?
mad-draft-v-2-ghi-1       |     npm install # Install a package
mad-draft-v-2-ghi-1       |     npm uninstall # Remove a package
mad-draft-v-2-ghi-1       |
mad-draft-v-2-ghi-1       | To see a list of supported npm commands, run:
mad-draft-v-2-ghi-1       |   npm help
"ad-draft-v-2-ghi-1       | npm ERR! Missing script: "dev
mad-draft-v-2-ghi-1       | npm ERR!
mad-draft-v-2-ghi-1       | npm ERR! Did you mean this?
mad-draft-v-2-ghi-1       | npm ERR!     npm run dev # run the "dev" package script
mad-draft-v-2-ghi-1       | npm ERR!
mad-draft-v-2-ghi-1       | npm ERR! To see a list of scripts, run:
mad-draft-v-2-ghi-1       | npm ERR!   npm run
mad-draft-v-2-ghi-1       |
mad-draft-v-2-ghi-1       | npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2024-03-22T16_50_58_152Z-debug-0.log
mad-draft-v-2-ghi-1 exited with code 1

相关配置文件

docker-compose.yaml

volumes:
    maddraft-data:
        external: true
    pgadmin:
        external: true
services:
    fastapi:
        environment:
            DATABASE_URL: ${DATABASE_URL}
            WAIT_HOSTS: db:5432
            PORT: 8000
            SIGNING_KEY: ${SIGNING_KEY}
            CORS_HOST: ${CORS_HOST}
            POSTGRES_DB: ${POSTGRES_DB}
            DB_HOST: ${DB_HOST}
            DB_USER: ${POSTGRES_USER}
            DB_PASS: ${POSTGRES_PASSWORD}
            DB_PORT: ${DB_PORT}
            NATSTAT_KEY: ${NATSTAT_KEY}

        build:
            dockerfile: Dockerfile.dev
        ports:
            - 8000:8000
        volumes:
            - ./api:/app
    ghi:
        image: node:lts-bullseye
        environment:
            VITE_API_HOST: ${VITE_API_HOST}
            VITE_PUBLIC_URL: ${VITE_PUBLIC_URL}
        command: /bin/bash run.sh
        working_dir: /app
        volumes:
            - ./ghi:/app
        ports:
            - "5173:5173"
    db:
        image: postgres:14.5-bullseye
        environment:
            WAIT_BEFORE: 5
            WAIT_TIMEOUT: 60
            POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
            POSTGRES_USER: ${POSTGRES_USER}
            POSTGRES_DB: ${POSTGRES_DB}
        ports:
            - "15432:5432"
        volumes:
            - maddraft-data:/var/lib/postgresql/data
    pg-admin:
        image: dpage/pgadmin4
        volumes:
            - pgadmin:/var/lib/pgadmin
        ports:
            - 8082:80
        environment:
            PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL}
            PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD}
            PGADMIN_DISABLE_POSTFIX: 1

Dockerfile.dev

FROM python:3.10-bullseye
RUN python -m pip install --upgrade pip
ADD https://github.com/ufoscout/docker-compose-wait/releases/download/2.9.0/wait /wait
RUN chmod +x /wait
WORKDIR /deps
COPY requirements.txt requirements.txt
RUN python -m pip install -r requirements.txt
WORKDIR /app
CMD /wait && python -m migrations up && uvicorn main:app --reload --host 0.0.0.0

package.json

{
  "name": "ghi",
  "private": true,
  "version": "0.0.0",
  "type": "module",
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "lint": "eslint . --ext js,jsx --report-unused-disable-directives --max-warnings 0",
    "preview": "vite preview"
  },
  "dependencies": {
    "react": "^18.2.0",
    "react-dom": "^18.2.0"
  },
  "devDependencies": {
    "@types/react": "^18.2.66",
    "@types/react-dom": "^18.2.22",
    "@vitejs/plugin-react": "^4.2.1",
    "eslint": "^8.57.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-react-hooks": "^4.6.0",
    "eslint-plugin-react-refresh": "^0.4.6",
    "vite": "^5.2.0"
  }
}

run.sh

npm install
npm run dev

预期与实际结果

预期ghi容器能正常构建并运行Vite启动React应用,实际容器启动前就失败,恳请帮忙排查问题。


内容的提问来源于stack exchange,提问作者Sam M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 03:39:55