Docker角容器-热装

时间:2018-09-12 14:23:29

标签: angular docker dockerfile nodemon

我有一个构建我的角度应用程序的dockerfile:

FROM node:8.11.3-alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install -g nodemon
RUN npm install -g @angular/cli@6.0.8 && npm install
COPY . /usr/src/app
EXPOSE 5004
CMD ng serve --host 0.0.0.0

我想将热重装添加到我的docker容器中,以便代码更改自动反映在我的浏览器中。

Nodemon 似乎是启用热重装的最佳工具,只是我似乎无法使用Dockerfile对其进行正确配置。

有人可以向我解释在Docker中使用nodemon的最佳方法,以便我的角度应用可以热重载吗?

2 个答案:

答案 0 :(得分:0)

您的Dockerfile将所有项目数据复制到容器中。该副本将不受主机上文件更改的影响。

要更改此设置,可以将带有项目代码的卷装入容器。为此,运行容器:

-v ./src:/usr/src/app/src

它将把本地的角度src文件夹安装到容器中。无需覆盖已安装的npm_modules文件夹。

如果在Windows上,则hyper-v和文件更改存在问题。作为解决方法,您可以使用--poll标志运行ng serve以启用轮询。在我们的文件中将是

CMD ng serve --poll 200 --host 0.0.0.0

ng服务现在将每200毫秒主动检查一次文件更改。

答案 1 :(得分:0)

为此解决了问题。

docker run -u $(id -u) --rm -p 4200:4200 -v "$PWD":/app trion/ng-cli ng serve -host 0.0.0.0