TypeScript编译在Dockerfile内部失败

时间:2019-06-09 14:55:53

标签: typescript docker

我有以下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 个答案:

答案 0 :(得分:2)

哇,这是一个与TypeScript无关的简单问题。

我没有正确执行COPY命令。

复制文件时,您可以COPY <filename> .

但是显然,对于目录,您必须执行COPY <dirname> <dirname>

所以我通过将COPY src .更改为COPY src src来解决此问题。