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
相关产品推荐
相关产品推荐

