Docker容器不会重新加载Angular应用程序

我在docker-compose运行的docker容器中有一些问题.

Dockerfile

FROM node:7.1

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
RUN npm install -g angular-cli
COPY . /usr/src/app

EXPOSE 4200

CMD [ "npm","start" ]'

还有我的docker-compose.yml

web:
    build: .
    ports:
        - '8089:4200'
    volumes:
        - .:/usr/src/app/
    environment:
        - NODE_ENV=dev
    command: bash -c "npm start"

当我运行它时,一切都很好,但编辑文件不会重新加载应用程序.文件已更改,我确定因为我通过ssh连接检查它并且容器中的文件已被编辑.当容器重新启动时,每次更改都会应用.
我想当我只用码头工人用建筑图像切换来构图时,它会消失,但不会.

当我从docker exec调用触摸一些文件时,webpack重新加载所有文件,并且无需重启容器即可工作.

有人有解决方案吗?

最佳答案
Webpack使用端口来重新加载应用程序.该端口默认为49153.

您必须将容器中的端口公开并绑定到主机端口,这应该可以解决您的问题.

所以,将它添加到Dockerfile中.

FROM node:7.1

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
RUN npm install -g angular-cli
COPY . /usr/src/app

EXPOSE 4200 49153

CMD [ "npm","start" ]'

这是你的docker-compose.yml.

web:
    build: .
    ports:
        - '8089:4200'
        - '49153:49153'
    volumes:
        - .:/usr/src/app/
    environment:
        - NODE_ENV=dev
    command: bash -c "npm start"

相关文章

最近一直在开发Apworks框架的案例代码,同时也在一起修复Apw...
最近每天都在空闲时间努力编写Apworks框架的案例代码WeText。...
在《Kubernetes中分布式存储Rook-Ceph部署快速演练》文章中,...
最近在项目中有涉及到Kubernetes的分布式存储部分的内容,也...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...
CentOS下Docker与.netcore(一) 之 安装 CentOS下Docker与.ne...