gar*_*258 15 containers docker docker-compose angular
我ng serve在运行的docker容器中遇到了一些问题docker-compose.
Dockerfile
FROM node:7.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
RUN npm install -g angular-cli
COPY . /usr/src/app
EXPOSE 4200
CMD [ "npm", "start" ]'
Run Code Online (Sandbox Code Playgroud)
还有我的docker-compose.yml
web:
build: .
ports:
- '8089:4200'
volumes:
- .:/usr/src/app/
environment:
- NODE_ENV=dev
command: bash -c "npm start"
Run Code Online (Sandbox Code Playgroud)
当我运行它时,一切都很好,但编辑文件不会重新加载应用程序.文件已更改,我确定因为我通过ssh连接检查它并且编辑了容器中的文件.当容器重新启动时,每次更改都会应用.我想当我只用码头工人用建筑图像切换来构图时这会消失,但不要.
当我通过docker exec webpack重新加载所有文件来调用触摸某个文件时,无需重新启动容器即可工作.
有人有解决方案吗?
gar*_*258 18
我找到了两个问题的解决方案:
的inotify - >只需编辑package.json在"scripts"节这一行:"start": "ng serve --host 0.0.0.0 --poll",只适用于Windows主机所需,
热重载- >添加expose 49153在Dockerfile和端口- '49153:49153'中docker-compose.yml提到的一样@kstromeiraos.
kst*_*aos 13
Webpack使用端口来重新加载应用程序.该端口49153默认为.
您必须将容器中的端口公开并绑定到主机端口,这应该可以解决您的问题.
所以,将此添加到您的Dockerfile.
FROM node:7.1
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
RUN npm install -g angular-cli
COPY . /usr/src/app
EXPOSE 4200 49153
CMD [ "npm", "start" ]'
Run Code Online (Sandbox Code Playgroud)
这对你来说docker-compose.yml.
web:
build: .
ports:
- '8089:4200'
- '49153:49153'
volumes:
- .:/usr/src/app/
environment:
- NODE_ENV=dev
command: bash -c "npm start"
Run Code Online (Sandbox Code Playgroud)
我的解决方案使用node:slim。
无需将数据复制到容器中。只需使用卷。
Dockerfile:
注意:--poll 1
FROM节点:slim 运行npm install @ angular / cli @ latest -g 运行mkdir -p / home / boilerplate WORKDIR /家用/样板 展览4200 CMD ng服务-端口4200-主机0.0.0.0-轮询1
撰写:
项目:
图片:项目
建立:
内容:。
dockerfile:projectdir / Dockerfile
数量:
-./projectdir:/home/boilerplate
端口:
-4200:4200
| 归档时间: |
|
| 查看次数: |
8661 次 |
| 最近记录: |