typescript - 如何在 Docker 容器内的 NestJs 应用程序中观察文件更改

标签 typescript docker docker-compose nestjs

我遇到了 的问题NestJS docker .我想通过 npm start: dev 运行开发脚本,但问题是该应用程序运行正常,但未检测到源文件中的任何更改,因此我无法使用它来开发我的应用程序。

这是我的 的一部分docker-compose.yml :

messages:
   image: c2c/messages:v1
   command: npm run start:dev
   build:
     context: ./services/c2c-server-messages
     dockerfile: Dockerfile
   container_name: c2c_server_messages
   depends_on:
     - postgres
     - nginx
   networks:
     c2c_net:
       ipv4_address: 172.28.1.5

Dockerfile 我的 Nest 应用程序:
FROM node:10-alpine
WORKDIR /api/messages
ADD . .
RUN npm install
EXPOSE 3000
CMD ["npm", "run", "start"]

我的 npm start:dev 脚本在 package.json :
"start:dev": "tsc-watch -p tsconfig.build.json --onSuccess \"node dist/main.js\"",

控制台输出 给我看这个,但应用程序没有检测到文件更改:
c2c_server_messages | 7:26:29 PM - Found 0 errors. Watching for file changes.
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [NestFactory] Starting Nest application...
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [InstanceLoader] TypeOrmModule dependencies initialized +63ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [InstanceLoader] AppModule dependencies initialized +2ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [InstanceLoader] TypeOrmCoreModule dependencies initialized +151ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [InstanceLoader] TypeOrmModule dependencies initialized +1ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [InstanceLoader] MessageModule dependencies initialized +2ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [RoutesResolver] AppController {/}: +8ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [RouterExplorer] Mapped {/, GET} route +6ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [RoutesResolver] MessageController {/messages}: +1ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [RouterExplorer] Mapped {/, POST} route +2ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [RouterExplorer] Mapped {/all, GET} route +2ms
c2c_server_messages | [Nest] 36   - 07/31/2019, 7:26 PM   [NestApplication] Nest application successfully started +5ms

最佳答案

我现在可以工作了:)

关键是创建一个音量 在 docker-compose 中使用微服务文件夹的本地机器根文件夹,在这种情况下 ./services/c2c-server-messages 作为容器中应用程序的根 :/api/messages

通过这种方式,您使用的是本地文件来运行应用程序,而不是复制到容器中的文件,因此您可以在保存文件时观察更改。

例子:

  messages:
   image: c2c/messages:v1
   volumes:
    - ./services/c2c-server-messages:/api/messages
   command: npm run start:dev
   build:
     context: ./services/c2c-server-messages
     dockerfile: Dockerfile
   container_name: c2c_server_messages
   depends_on:
     - postgres
     - nginx
   networks:
     c2c_net:
       ipv4_address: 172.28.1.5

关于typescript - 如何在 Docker 容器内的 NestJs 应用程序中观察文件更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57297703/

相关文章:

reactjs - 历史上的 React Router RouteParams

安装在 Windows 8 上的 Docker 卷不起作用

python - 从 python 运行 docker-compose

javascript - 如何将函数链接到 JavaScript 中的 HTML 按钮和文本字段

typescript - 如何一般地键入不一致函数的修改字典

typescript - 为类对象赋值后为 "TypeError: XXXX is not a function"

centos - 在 docker 容器中运行 docker?

asp.net - Docker:运行dotnet publish -o/output会在CLI上导致非零错误

docker - 使用 Fargate 在 ECS 上运行 Redis

即使 UFW 拒绝访问,Docker 端口也会在界面上可见