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

gar*_*258 15 containers docker docker-compose angular

ng serve在运行的docker容器中遇到了一些问题docker-compose.

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" ]'
Run Code Online (Sandbox Code Playgroud)

还有我的docker-compose.yml

web:
    build: .
    ports:
        - '8089:4200'
    volumes:
        - .:/usr/src/app/
    environment:
        - NODE_ENV=dev
    command: bash -c "npm start"
Run Code Online (Sandbox Code Playgroud)

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

当我通过docker exec webpack重新加载所有文件来调用触摸某个文件时,无需重新启动容器即可工作.

有人有解决方案吗?

gar*_*258 18

我找到了两个问题的解决方案:

  1. 的inotify - >只需编辑package.json"scripts"节这一行:"start": "ng serve --host 0.0.0.0 --poll",只适用于Windows主机所需,

  2. 热重载- >添加expose 49153Dockerfile和端口- '49153:49153'docker-compose.yml提到的一样@kstromeiraos.

  • 在将步骤1修改为“开始”后开始工作:“ ng serve --host 0.0.0.0 --poll 500” (2认同)
  • @NishanChathuranga您的解决方案在 Visual Studio 2019 中运行得非常好,无需指定主机。`“start”:“ngserve --poll 500”,`谢谢。 (2认同)

kst*_*aos 13

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" ]'
Run Code Online (Sandbox Code Playgroud)

这对你来说docker-compose.yml.

web:
    build: .
    ports:
        - '8089:4200'
        - '49153:49153'
    volumes:
        - .:/usr/src/app/
    environment:
        - NODE_ENV=dev
    command: bash -c "npm start"
Run Code Online (Sandbox Code Playgroud)


qua*_*ial 9

我的解决方案使用node:slim。

无需将数据复制到容器中。只需使用卷。

Dockerfile:

注意--poll 1

FROM节点:slim

运行npm install @ angular / cli @ latest -g

运行mkdir -p / home / boilerplate

WORKDIR /家用/样板

展览4200

CMD ng服务-端口4200-主机0.0.0.0-轮询1

撰写:

  项目:
    图片:项目
    建立:
      内容:。
      dockerfile:projectdir / Dockerfile
    数量:
    -./projectdir:/home/boilerplate
    端口:
    -4200:4200


归档时间:

查看次数:

8661 次

最近记录:

6 年,1 月 前