我们有一个生活在/src的typescript应用程序。我们有生活在/tests中的测试。在本地,当我们运行TSC时,它编译这两个文件,并将它们分别存放到/dist/src和/dist/test中。
我们还有一个Dockerconfig,它告诉docker忽略一堆开发文件,包括/tests。当Docker运行tsc时,它只看到/src,所以它将所有的/src存放到/dist --这意味着当我们有--例如--一个本地编译成/dist/src/services/whatever.js的/services文件夹时;我们在容器中的/dist/services/whatever.js看到它。
我们的dockerfile很小,它们只是运行TSC并设置入口点。我们是否需要对dockerfile更加明确?这是一个人们已经找到了优雅的解决方案的问题吗?
发布于 2016-06-11 03:37:39
如果不确切知道安装了什么目录,以及在docker容器中的什么位置,就很难说出来,但这听起来像是一个应该使用tsconfig.json解决的问题,如果必要的话,可能需要创造性地使用docker文件。
例如,我有一个用于tsc的dockerfile,它看起来像这样:
FROM alpine:latest
RUN apk update && apk add nodejs && rm -rf /var/cache/apk/*
RUN npm install -g typescript@~1.6
RUN mkdir /tsc
WORKDIR /tsc
ENTRYPOINT ["tsc"]该容器将按如下方式执行:
docker run tsc -v "./:/tsc"如果我的目录树是这样的:
.
├── tsconfig.json
├── dist
├── src
├── test然后,我看到了tsconfig.json的几种不同可能性
{
"compilerOptions": {
"rootDir": "src",
"outDir": "dist/src"
}
}或
{
"exclude": ["test"]
}https://stackoverflow.com/questions/37755467
复制相似问题