Docker撰写监视和Web实时重新加载

时间:2019-08-19 14:49:29

标签: docker docker-compose

我设法能够直接使用docker-compose和Makefile进行开发人员观看。

FROM node:alpine as init
ADD package.json .
ADD package-lock.json .

FROM init as install
RUN npm install

FROM install AS build
ADD _javascript _javascript
ADD _sass _sass
ADD package.json .
ADD .babelrc .
RUN npm run deploy

FROM scratch as release
COPY --from=build /css /public
COPY --from=build /js /public
ADD index.html /public

FROM node:alpine as dev
RUN npm install --global http-server
EXPOSE 80
CMD http-server /public -p 80 -c-1
COPY --from=release /public /public

Docker撰写文件:

version: '3.7'

services:
  release:
    build:
      context: .
      target: release
    image: ${IMAGE_NAME?}:${IMAGE_TAG?}

  dev:
    build:
      context: .
      target: dev
    image: ${IMAGE_NAME?}/dev:${IMAGE_TAG?}

然后使用watchexec生成Makefile:

all: dev
    watchexec make dev

dev:
    docker-compose build dev
    docker-compose up --remove-orphans --detach dev
    docker-compose ps

clean:
    docker-compose down --remove-orphans

这非常好用,可以让我在编辑JS文件,CSS甚至Dockerfile的任何时候得到一个刷新良好的运行项目。

借助docker缓存构建,只需完成所需的部分。

但是我缺少一件事:带有实时重载和CSS注入的静态服务器(如果可能)。

如何像我一样使用docker观看来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我终于使用livejs解决了我的问题:http://livejs.com/

它会定期检查是否对css,js或html内容进行了更改,并在必要时更新CSS或重新加载页面。

没有复杂的东西,只需包含脚本和voilà!