docker - TypeScript-ის კომპილაცია Dockerfile-ის შიგნით წარუმატებელი


მე მაქვს შემდეგი Dockerfile, რომელიც ცდება იმ ნაბიჯზე, რომელიც TypeScript-ს აწყობს:

FROM node:12
WORKDIR /usr/src/app

SETUP

COPY package.json .
COPY tsconfig.json .
COPY src .

RUN npm install -g yarn@^1.16.0
RUN yarn install

BUILD

RUN npx tsc <------------------------

შეცდომის შეტყობინება ძალიან დამაბნეველია:

File '/usr/src/app/app.ts' is not under 'rootDir' '/usr/src/app/src'. 'rootDir' is expected to contain all source files.

ეს არანაირ აზრს არ ანიჭებს... ის პოულობს app.ts-ს src ფოლდერის ქვეშ და მერე ეჩხუბება, რომ ეს არაა src ფოლდერის ქვეშ.

ფაილები :

src
  app.ts
tsconfig.json
Dockerfile

როგორ გავუმკლავდე ამ პრობლემას?

აქ არის ჩემი tsconfig.json:

{
  "compilerOptions": {
    ...
    "rootDir": "./src",
    "outDir": "./build",
    ...
  }
}

პასუხი #1

ვაუ, ეს ისეთი მარტივი პრობლემა იყო, რომელიც TypeScript-ს უკავშირდებოდა.

მე არ გავაკეთე COPY ბრძანება სწორად.

ფაილების ასლის გაკეთებისას შეგიძლიათ გამოიყენოთ COPY <filename> .

მაგრამ აშკარად დირექტორიების შემთხვევაში გმართებთ COPY <dirname> <dirname> გამოიყენოთ

ასე მოვაგვარე ეს სიტუაცია, COPY src .-ის შეცვლით COPY src src-ზე.