【问题标题】:Hot Reload with docker compose使用 docker compose 热重载
【发布时间】:2022-05-14 10:03:00
【问题描述】:

我刚刚从Project Clarity 播种了一个 Angular 应用程序,并且当我在 docker 容器中运行它时,我试图让热重载工作。

如果我进入正在运行的容器并编辑文件,重新加载工作正常,但我希望能够编辑容器外的文件并在容器中更新它们。如果我设置音量,我虽然会工作,但它似乎不起作用。

我的 Dockerfile....

FROM node:latest

RUN mkdir -p /usr/src/client
WORKDIR /usr/src/client

COPY package.json /usr/src/client
RUN npm install
COPY . /usr/src/client
EXPOSE 4200
CMD ["npm", "start"]

还有我的 docker-compose.yml 文件...

version: '2' 

services:
  client:
    build: clarity-seed
    ports:
      - "4200:4200"
    volumes:
      - ./clarity-seed:/usr/src/client
      - /usr/src/client/node_modules

我正在使用 docker-compose,因为我最终会设置一个 express 服务器和一个 mongo 数据库。

【问题讨论】:

标签: angular docker docker-compose


【解决方案1】:

根据我从这篇中等文章中的理解: https://olshansky.medium.com/hot-reloading-with-local-docker-development-1ec5dbaa4a65

在设置卷时,应该让容器中的文件直接映射到项目目录中的文件(将容器外文件映射到容器内文件)。

因此,对于您的情况,您只需更改第一卷以适应本地文件,即:

build: clarity-seed

ports:

  - "4200:4200"

volumes:

  - ./:/usr/src/client

  - /usr/src/client/node_modules

【讨论】:

    【解决方案2】:

    传递 --poll 2000--disable-host-check 对我有用。这个Angular Docker Hot-Reload Template 有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      • 2022-07-07
      • 1970-01-01
      • 2019-02-17
      • 2021-06-17
      • 1970-01-01
      相关资源
      最近更新 更多