我在docker-compose运行的docker容器中有一些问题.
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" ]'
还有我的docker-compose.yml
web:
build: .
ports:
- '8089:4200'
volumes:
- .:/usr/src/app/
environment:
- NODE_ENV=dev
command: bash -c "npm start"
当我运行它时,一切都很好,但编辑文件不会重新加载应用程序.文件已更改,我确定因为我通过ssh连接检查它并且容器中的文件已被编辑.当容器重新启动时,每次更改都会应用.
我想当我只用码头工人用建筑图像切换来构图时,它会消失,但不会.
当我从docker exec调用触摸一些文件时,webpack重新加载所有文件,并且无需重启容器即可工作.
有人有解决方案吗?
最佳答案
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" ]'
这是你的docker-compose.yml.
web:
build: .
ports:
- '8089:4200'
- '49153:49153'
volumes:
- .:/usr/src/app/
environment:
- NODE_ENV=dev
command: bash -c "npm start"