我有一个由不同微服务组成的Node.js应用程序。每个微服务都是一个Node.js或NestJS应用程序
.js
和
.ts
文件夹。每个这样的应用程序在应用程序的文件夹中都有自己的Dockerfile。这些文件通常包含构建步骤的类似行:
dockerfile
WORKDIR /app
RUN npm run build && npm prune --production --force && rm -rf src
例如,此代码属于“网关服务器”服务。如果我在正在运行的容器中启动一个终端shell,我可以在“app”文件夹中看到编译后的文件(只有.js和.js.map文件)。其他服务也是如此。
但是,我们的应用程序有一个标记为“sps”的微服务。“sps”应用程序的Dockerfile不包含任何“构建”指令。当我在容器中运行shell时,“app”文件夹由原始源文件组成-
.ts
和
.js
文件(原始源代码)。
我有几个问题:
Node.js应用程序容器怎么可能不包含编译文件?我尝试使用目录搜索和
find
命令,但什么也没找到。
编译后的文件可能位于某个外部卷中,还是内置在RAM中?如果是这样,我如何找到他们的位置
Docker inspect <containerID>
帮助我?
为什么有人会在没有编译文件的情况下使用这样的设置?