vinkel - Ingen sådan fil tsconfig.app.json, når du bruger docker til at oprette dev miljø på Windows 10

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har problemer med at bruge Docker til at skabe et udviklingsmiljø for Angular 5 på Windows 10.


Her er min ng version info:


Angular CLI: 1.6.8
Node: 6.11.0
OS: win32 x64
Angular: 5.2.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.6.8
@angular-devkit/build-optimizer: 0.0.42
@angular-devkit/core: 0.0.29
@angular-devkit/schematics: 0.0.52
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.9.8
@schematics/angular: 0.1.17
typescript: 2.5.3
webpack: 3.10.0


For at prøve at finde løsningen på mit problem brugte jeg Angular CLI (nyeste version) til at oprette et nyt projekt, docker-test ved hjælp af:


ng new docker-test


Jeg cd'd derefter til docker-test og tilføjede en dockerfil som vist nedenfor:


FROM node:8
RUN mkdir -p /app
WORKDIR /app
COPY package.json /app/
RUN ["npm", "install"]
COPY . /app
EXPOSE 4200/tcp
EXPOSE 49153/tcp
CMD ["npm", "start"]


Hvis jeg kører 'ng server' fra Powershell, serveres appen uden problemer.


Men når jeg forsøger at bruge Docker, ramte jeg et problem.


Efter at have fjernet alle billeder og containere ved hjælp af:


docker rmi $(docker images -q)
docker rm $(docker ps -a -q)


Jeg er i stand til at opbygge billedet med:


docker build -t docker-test -f dockerfile .


og kan 'docker køre' med succes ved hjælp af:


docker run --rm -it -p 4200:4200 -p 49153:49153 docker-test:latest


Men hvis jeg forsøger at bruge volumener til at tillade live opdateringer ved hjælp af følgende kommando:


docker run -it --rm -p 4200:4200 -p 49153:49153 -v ${pwd}/src:/app/src docker-test


Jeg får følgende fejl:


ENOENT: no such file or directory, stat '/app/src/tsconfig.app.json'
Error: ENOENT: no such file or directory, stat '/app/src/tsconfig.app.json'
at Object.fs.statSync (fs.js:948:11)
at AngularCompilerPlugin.\_setupOptions (/app/node\_modules/@ngtools/webpack/src/angular\_compiler\_plugin.js:78:16)
at new AngularCompilerPlugin (/app/node\_modules/@ngtools/webpack/src/angular\_compiler\_plugin.js:43:14)
at \_createAotPlugin (/app/node\_modules/@angular/cli/models/webpack-configs/typescript.js:77:16)
at Object.getNonAotConfig (/app/node\_modules/@angular/cli/models/webpack-configs/typescript.js:100:19)
at NgCliWebpackConfig.buildConfig (/app/node\_modules/@angular/cli/models/webpack-config.js:41:37)
at Class.run (/app/node\_modules/@angular/cli/tasks/serve.js:71:98)
at check\_port\_1.checkPort.then.port (/app/node\_modules/@angular/cli/commands/serve.js:123:26)
at <anonymous>
at process.\_tickCallback (internal/process/next\_tick.js:188:7)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! docker-test@0.0.0 start: `ng serve --host 0.0.0.0 --poll 500`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the docker-test@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/\_logs/2018-02-12T19\_50\_23\_145Z-debug.log


og jeg kan ikke finde ud af, hvad problemet er.
Filen er på værten:


Indtast billedbeskrivelse her [10]


Jeg får den samme fejl, hvis jeg bruger følgende docker-compose.yaml-fil:


version: '3'
services:
  web: # name of the service
  build: ./ # specify the directory of the Dockerfile
  ports:
     - "4200:80"
     - "49153:49153"
  volumes:
     - '${pwd}/src:/app/src'


Enhver vejledning i problemet eller hvordan man fejler vil blive modtaget meget taknemmeligt.

Bedste reference