我有以下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",
...
}
}
答案 0 :(得分:2)
哇,这是一个与TypeScript无关的简单问题。
我没有正确执行COPY
命令。
复制文件时,您可以COPY <filename> .
但是显然,对于目录,您必须执行COPY <dirname> <dirname>
所以我通过将COPY src .
更改为COPY src src
来解决此问题。