Angular 6.0.3在docker中不起作用,因为它找不到模块@Angular devkit/build Angular
我试图在Angular 6.0.3在docker中不起作用,因为它找不到模块@Angular devkit/build Angular,angular,docker,angular6,Angular,Docker,Angular6,我试图在docker compose环境中添加我的angular6应用程序。我在本地创建了该项目,它可以工作,但在docker compose build和docker compose up之后,它会发送下一个错误: angular6@0.0.0 start /usr/src/app > ng serve --host 0.0.0.0 --disable-host-check -p 3000 Could not find module "@angular-devkit/build-ang
docker compose
环境中添加我的angular6应用程序。我在本地创建了该项目,它可以工作,但在docker compose build
和docker compose up
之后,它会发送下一个错误:
angular6@0.0.0 start /usr/src/app
> ng serve --host 0.0.0.0 --disable-host-check -p 3000
Could not find module "@angular-devkit/build-angular" from "/usr/src/app".
Error: Could not find module "@angular-devkit/build-angular" from "/usr/src/app".
at Object.resolve (/usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/core/node/resolve.js:141:11)
at Observable.rxjs_1.Observable [as _subscribe] (/usr/local/lib/node_modules/@angular/cli/node_modules/@angular-devkit/architect/src/architect.js:132:40)
at Observable.subscribe (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/Observable.js:162:69)
at DoOperator.call (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/operators/tap.js:71:23)
at Observable.subscribe (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/Observable.js:159:22)
at /usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/util/subscribeTo.js:22:31
at Object.subscribeToResult (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/util/subscribeToResult.js:7:45)
at MergeMapSubscriber._innerSub (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/operators/mergeMap.js:132:38)
at MergeMapSubscriber._tryNext (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/operators/mergeMap.js:129:14)
at MergeMapSubscriber._next (/usr/local/lib/node_modules/@angular/cli/node_modules/rxjs/internal/operators/mergeMap.js:112:18)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! angular6@0.0.0 start: `ng serve --host 0.0.0.0 --disable-host-check -p 3000`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the angular6@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
angular-ayaresa |
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2018-05-23T10_03_17_591Z-debug.log
这是我的角度Dockerfile:
# Create image based on the official Node 8.10.0 image from dockerhub
FROM node:8.10.0
# Create a directory where our app will be placed
RUN mkdir -p /usr/src/app
# Change directory so that our commands run inside this new directory
WORKDIR /usr/src/app
# Copy dependency definitions
COPY ./quickstart /usr/src/app
# Install dependecies
RUN rm -rf node_modules/
RUN npm i --save
RUN npm i npm@latest -g
RUN npm install -g @angular/cli
# Expose the port the app runs in
EXPOSE 4200
# Serve the app
CMD ["npm", "start"]
模块
@angular devkit/build angular
已正确安装并包含在package.json中。您的docker文件中有一个错误
您执行了WORKDIR并将其设置为/usr/src/app
这意味着,上下文将切换到该文件
因此,当您执行COPY./quickstart/usr/src/app
时,应该是COPY./quickstart.
docker文档说
路径必须在生成的上下文中;您无法复制../something/something,因为docker构建的第一步是将上下文目录(和子目录)发送到docker守护进程。
参考:我发现了问题
我已删除docker-compose.yml中的一行
angular-ayaresa:
build:
context: build/angular
ports:
- "4200:4200"
volumes:
- ../source/angular:/usr/src/app/
- /usr/src/app/node_modules/ // <-- this line
container_name: angular-ayaresa
networks:
- ayaresa-network
angular ayaresa:
建造:
上下文:构建/角度
端口:
- "4200:4200"
卷数:
-../source/angular:/usr/src/app/
-/usr/src/app/node\u模块///