webpack-dev-server里面的docker麻烦

时间:2018-05-03 09:14:15

标签: docker docker-compose

我有这样的文件结构:

/root-app
  /api
  /dashboard
    package.json
    yarn.lock
    Dockerfile
docker-compose.yml

/根应用内/ docker-compose.yml

dashboard:
  build: ./dashboard
  command: yarn dev
  volumes:
    - ./dashboard:/usr/src/app
    - /usr/src/app/node_modules

/根应用程序/仪表板/ 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,更新-1的错误仍在此处。

2 个答案:

答案 0 :(得分:0)

/root-app/dashboard/Dockerfile删除复制命令中,因为您已使用卷绑定同一目录。

在Dockerfile中也使用COPY而不是ADD命令。

COPY package.json ./
COPY yarn.lock ./

在docker-compose.yml中删除第二个卷
- ./dashboard/node_modules:/usr/src/app/node_modules,因为第一个目录(./dashboard)已经挂载(/ usr / src / app /)。

让我看看这些更新后的输出。

答案 1 :(得分:0)

您可以尝试在当前遇到退出代码为0的问题的构建上进行安装,但是将安装node_modules。 我遇到一个问题,其中devDependencies不能与yarn一起安装。

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