我創建了一個docker容器來運行吞噬任務。 所有任務都在運行,問題是我無法在Chrome中啓用livrereload,但我公開了35729端口在我的容器中。如何在碼頭集裝箱內使用gulp運行livereload?
這裏是Dockerfile:
FROM ubuntu:latest
MAINTAINER jiboulex
EXPOSE 80 8080 3000 35729
RUN apt-get update
RUN apt-get install curl -y
RUN apt-get install software-properties-common -y
RUN add-apt-repository ppa:chris-lea/node.js
RUN apt-get update
RUN apt-get install nodejs -y
RUN curl -L https://www.npmjs.com/install.sh | sh
RUN npm install --global gulp -y
# overwrite this with 'CMD []' in a dependent Dockerfile
CMD ["/bin/bash"]
我創建使用以下命令圖像:
docker build -t gulp_image .
我創建了一個容器:
docker run --name=gulp_container -i -t --rm -v /var/www/my_app:/var/www/my_app:rw gulp_image bash
然後在我的容器
cd /var/www/my_app
gulp
這裏是我的Gulpfile.js
var gulp = require('gulp'),
livereload = require('gulp-livereload'),
exec = require('child_process').exec;
gulp.task('js', function() {
gulp.src([
'./src/js/*.js'
]).pipe(livereload());
});
gulp.task('watch', function(){
var onChange = function (event) {
console.log('File '+event.path+' has been '+event.type);
};
livereload.listen();
gulp.watch([
'./src/js/*.js'
], ['js'])
.on('change', onChange);
});
gulp.task('default', ['watch', 'js']);
當我編輯一個js文件,我可以在我的容器中看到,文件處理,但是當我試圖讓現場重裝在我的瀏覽器(Chrome)我收到以下消息:「無法連接到LiveReload服務器..」
任何人都知道我錯過了什麼或沒有做什麼? 感謝您的閱讀!
,我沒有看到'-p 80'and這樣嗎? – user2915097
你在Windows或OS X上嗎? – Thomasleveil
我在Linux上(薄荷) 我用命令'docker run --name = gulp_container -i -t -p 80 -p 35729 --rm -v/var/www/my_app:/ var/www/my_app :rw gulp_image bash'但它不是更好。 當我運行docker ps -a時,我可以看到我的Dockerfile中已啓用的端口已考慮在內。 – jiboulex