我有一个在Docker容器中运行的角5.2应用程序,为了开发目的,我使用了角CLI的ng-serve来服务这个应用程序,该应用程序提供更改时的自动重新加载。我最初的工作服务命令;
ng serve --host 0.0.0.0 --port 80 --disable-host-check
这个功能很好,我可以像预期的那样从主机上访问服务的应用程序。
对于上面的内容,由于有各种来源,我添加了--poll 1000标志,它告诉CLI每1000 To轮询一次文件,否则它就不会检测到更改,因此不会重新编译和更新。我在这里的问题是,在文件被更改和在触发重新构建的坞容器中检测到的更改之间,延迟时间高达15-20秒。我已经确认文件更改被转换到容器中,因为我可以立即在容器中保存并查看更改时cat编辑的文件。我可以将轮询超时更改为1ms,这样可以将延迟减少到几秒钟,但这显然不是理想的,而且延迟仍然很大。
为何会有这样的延误呢?
// docker-compose.yml
web-client:
build:
context: ../web-client/
dockerfile: ./docker/Dockerfile
ports:
- "80:80"
volumes:
- ../web-client/:/var/www/web-client
container_name: web-client
// Dockerfile
FROM node:9.11
COPY ./ /var/www/web-client
ENTRYPOINT ["/var/www/web-client/docker/entrypoint.sh"]
// entrypoint.sh
#!/usr/bin/env bash
cd /var/www/web-client
yarn run start
// package.json
"scripts": {
...
"start": "ng serve --host 0.0.0.0 --port 80 --poll 1 --disable-host-check",
...
}发布于 2018-07-07 19:06:18
这是我的设置相当快,
docker compose,向外部公开端口4200,挂载src文件夹以检测更改:
version: '2'
services:
web:
container_name: my-spa-dev
build:
context: ./
dockerfile: Dockerfile.test
ports:
- "4200:4200"
volumes:
- ./src:/usr/src/app/srcDockerfile.test:
FROM node:10
WORKDIR /usr/src/app
COPY package.json ./
COPY yarn.lock ./
RUN yarn install
COPY . .
CMD ["yarn", "start"]与docker-compose -f docker-compose.dev.yml up一起运行
https://stackoverflow.com/questions/49930865
复制相似问题