我有这样的文件结构:
/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的错误仍在此处。
答案 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