直播在Docker容器中重新加载Angular4应用程序?

时间:2018-01-16 20:32:58

标签: angular docker

我们正在Docker容器中部署我们的生产Angular4 webapp。我们的Dockerfile如下所示:

FROM alpine

RUN apk add --update python \
                 python-dev \
                 py-pip \
                 nodejs \
                 nodejs-npm \
                 openssl \
                 nginx

RUN pip install jinja2

RUN npm -g config set user root
RUN npm install -g @angular/cli

RUN mkdir /app

ADD web /tmpbuild
WORKDIR /tmpbuild
RUN npm install
RUN ng build --env=prod
RUN mkdir /app/html
RUN cp -R dist/* /app/html/
RUN rm -rf /tmpbuild

ADD app /app

WORKDIR /app
RUN chmod 755 start.sh

ENTRYPOINT /app/start.sh

因为我们希望我们的开发环境与我们的生产环境相匹配,所以我们也使用相同的Dockerfile在本地容纳我们的webapp。问题是 - 我们如何将开发中编译的文件与生产容器中的文件保持一致,同时还实时重新加载?如果我们在Dockerfile中使用ng serve而不是ng build --env=prod进行开发,那么实时重新加载将按预期工作。但是,当ng build没有时,运行ng serve可能会失败(例如,使用aot编译禁止在某些情况下使用ng build而不是ng serve使用私有变量),这就是为什么我们需要命令在开发和生产之间保持一致。

是否有其他推荐方法可以使用ng build实现实时重新加载?

0 个答案:

没有答案