我在 Visual Studio 2019 中将 docker-compose 与 docker 一起用于运行 linux 容器的 Windows。我想为 Angular 客户端应用程序启用热重载。
我修改了运行应用程序的 npm 命令以包含如下轮询:
"docker-start": "ng serve --host 0.0.0.0 --port 4200 --proxy-config proxy-conf.json --poll 1"
并像这样在 docker-compose 中添加了一个卷:
volumes:
- ./ClientApp:/app/
还额外暴露了 webpack 端口
ports:
- 4200:4200
- 49153:49153
docker-compose 文件位于 repo 的根目录,而 Angular 应用程序位于 /ClientApp 文件夹中。这使得每次导航到 localhost:4200 时应用程序都无法 GET\。如果我注释掉卷映射,应用程序开始工作,但重新加载没有。我希望它能够在每次更改任何前端代码时监听代码中的更改并根据需要更新容器。
整个码头文件:
FROM node:9.6.1
RUN mkdir -p /app
WORKDIR /app
EXPOSE 4200
EXPOSE 49153
ENV PATH /app/node_modules/.bin:$PATH
COPY . /app
RUN npm install --silent
RUN npm rebuild node-sass
CMD ["npm", "run", "docker-start"]