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-ზე.