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

前端之家收集整理的这篇文章主要介绍了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"

猜你在找的Docker相关文章