docker - docker 内的 webpack-dev-server 麻烦
问题描述
我有这样的文件结构:
/root-app
/api
/dashboard
package.json
yarn.lock
Dockerfile
docker-compose.yml
/root-app/ docker-compose.yml
dashboard:
build: ./dashboard
command: yarn dev
volumes:
- ./dashboard:/usr/src/app
- /usr/src/app/node_modules
/root-app/dashboard/Dockerfile
FROM node
WORKDIR /usr/src/app
ADD package.json yarn.lock ./
RUN yarn install
COPY . .
当我在其中运行docker-compose up --build
文件夹node_modules
时,/roor-app/dashboard
它已创建但它是空的。为什么?我应该有我node_modules
的地方发展。
更新 1
当我使用绝对路径而不是相对路径时
dashboard:
build: ./dashboard
command: yarn dev
volumes:
- ./dashboard:/usr/src/app
- ./dashboard/node_modules:/usr/src/app/node_modules
我收到此错误:
dashboard | yarn run v1.3.2
dashboard | $ webpack-dev-server --mode development
dashboard | /bin/sh: 1: webpack-dev-server: not found
dashboard | error Command failed with exit code 127.
更新 2
我的新/dashboard/Dockerfile
FROM node
WORKDIR /usr/src/app
COPY package.json ./
COPY yarn.lock ./
RUN yarn install
- ./hms-dashboard/node_modules:/usr/src/app/node_modules
并从中删除docker-compose.yml
,update-1 中的错误仍然存在。
解决方案
您可以尝试在当前遇到退出代码 0 问题的构建上安装,但 node_modules 将安装。我遇到了一个问题,devDependencies
即没有使用纱线安装的地方。
FROM node
ARG environment=development
RUN mkdir /client
WORKDIR /client
COPY . /client
EXPOSE 8080
RUN npm --version
RUN npm install yarn
CMD if ["$environment" = "development"]; then yarn install --production=false; else yarn install; fi
RUN echo $environment
CMD if [ "$environment" = "development" ] ; then yarn build && yarn start; else yarn build; fi
推荐阅读
- sublimetext3 - 默认情况下在 Sublime 中打开所有 Grid Engine .e、.o、.pe 和 .po 文件?
- c++ - 在 0x00007FF74F27A526 处遇到未处理的异常:堆栈内存溢出
- c# - 为什么我的代码只允许我在列表视图框中拖放最上面的重复项
- android - 如何在Android中使用MPAndroidChart使用两组数据绘制图形
- reactjs - React Antd 在 array.map 上显示多个模式
- matlab - 4D分散数据的Matlab插值
- apache - 将 IIS htaccess 转换为 Apache htaccess 拆分 URL
- r - 计算列值之间的差异
- powershell - 如何按特定顺序启动多个服务,如果没有可用的服务,它将跳到下一个可用的服务?
- swift - 将 NSMutableData 的一部分复制到新的 NSMutableData 对象