在一个项目中,我有这个Dockerfile
:
FROM node:6.9.4
RUN npm install -g cordova@4.2.0 ionic@2.2.1
ENV DOCKER_CONTAINER_APP=/web-app
RUN mkdir -p $DOCKER_CONTAINER_APP
ADD . $DOCKER_CONTAINER_APP
WORKDIR $DOCKER_CONTAINER_APP
EXPOSE 8100 35729
RUN echo "ready to go!"
我正在使用 docker-compose,这是我在项目中使用的docker-compose yml
文件:
version: '2'
services:
web:
build:
context: .
environment:
- NODE_ENV=development
- DEBUG='true'
ports:
- 8100:8100
- 35729:35729
volumes:
- .:/web-app
- ./node_modules:/web-app/node_modules
command: sh -c 'npm install; ionic serve --all'
stdin_open: true
一切正常,这是docker-compose运行Web命令的输出:
[10:53:11] ionic-app-scripts 1.0.0
[10:53:18] watch started ...
[10:53:18] build dev started ...
[10:53:18] clean started ...
[10:53:18] clean finished in 57 ms
[10:53:18] copy started ...
[10:53:18] transpile started ...
[10:53:36] transpile finished in 17.96 s
[10:53:36] webpack started ...
[10:53:37] copy finished in 19.39 s
[10:53:51] webpack finished in 15.10 s
[10:53:51] sass started ...
[10:53:56] sass finished in 4.90 s
[10:53:56] build dev finished in 38.18 s
[10:53:57] watch ready in 39.27 s
[10:53:57] dev server running: http://localhost:8100/
但是原生离子活载不起作用。我怎样才能将 Livereload 与这个离子码头工人映像一起使用?
当我遇到类似的问题时,我注意到浏览器中尝试联系端口 53703 失败。这是屏幕截图:Chrome 开发者工具窗口
我当时使用的容器是用命令创建的
docker run -i -t -d --name ionic-dev -v /home/timur/Work/:/Work/
-p 8100:8100 -p 35729:35729 ionic-dev
所以我停止并删除了它
docker stop ionic-dev
docker rm ionic-dev
并使用命令创建了另一个容器(注意已发布端口 53703)
docker run -i -t -d --name ionic-dev -v /home/timur/Work/:/Work/
-p 8100:8100 -p 35729:35729 -p 53703:53703 ionic-dev
在那之后,livereload开始为我工作。