React应用Docker运行正常,迁移Docker Compose配置后启动失败
问题修复方案
1. 修正Docker Compose的卷挂载配置
问题核心是卷挂载路径没跟着调整:之前在/frontend目录下时,卷挂载的是当前目录(即/frontend)到容器/app,但把docker-compose.yml移到根目录后,原来的- .:/app会把/myproject根目录挂载到容器/app,导致容器里找/app/package.json时,实际找的是宿主机/myproject下的文件(自然不存在),同时容器内执行npm install会把依赖写到挂载的根目录,生成意外的node_modules。
修改docker-compose.yml里的卷配置,明确挂载frontend子目录:
services: frontend: build: context: ./frontend volumes: - ./frontend:/app # 把宿主机的frontend目录挂载到容器/app
2. 清理冗余文件
删除根目录下意外生成的node_modules:
rm -rf /myproject/node_modules
3. 重新构建运行
先清理旧的容器和缓存(避免残留问题):
docker compose down -v docker compose build --no-cache
然后启动服务:
docker compose up
额外检查点
确认/frontend目录下的Dockerfile配置正确,比如:
WORKDIR /app COPY package*.json ./ # 基于build context(frontend目录)复制文件,路径匹配无误 RUN npm install COPY . .
内容的提问来源于stack exchange,提问作者chocalaca
相关产品推荐
相关产品推荐

