docker和吞咽
我正在使用Windows 7并且有一个在boot2docker上运行的虚拟机。
docker-compose.yml :
web: image: nginx ports: - "80:80" volumes: - /var/www/docker/nginx/:/etc/nginx/conf.d/ - /var/www/:/var/www/html/ links: - php:php php: build: php volumes: - /var/www/:/var/www/html/ - /var/www/docker/php.ini:/usr/local/etc/php/php.ini - /var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock links: - db:db db: image: mysql ports: - "13306:3306" volumes: - /var/lib/boot2docker/mysql/:/var/lib/mysql/ environment: - MYQSL_ROOT_PASSWORD=root
gulpfile.js :
var gulp = require('gulp'); var postcss = require('gulp-postcss'); var processors = [ require('precss'), require('autoprefixer')({browsers: ['last 2 versions'] }), require('cssnano') ]; gulp.task('postcss', function() { gulp.src('gulp/stylesheets/*.css') .pipe(postcss(processors)) .pipe(gulp.dest('assets/stylesheets/')) }); gulp.task('watch-postcss', function() { gulp.watch("gulp/stylesheets/*.css", ["postcss"]); });
我试图运行Gulp编译我的CSS文件与虚拟机之外的postcss,但它似乎打破我的虚拟机的共享文件夹中的输出文件。 例如,如果我编译这个:
body { background: red; }
我得到这在输出文件(这是我想要的):
body{background:red}
但是,如果我重新编译这样的postcss样式表:
body { text-align: center; }
我在我的输出文件中得到这个:
body{background:red}
我的本地(Windows)文件被正确更新,这个bug只在虚拟机共享文件夹内的文件中。
我是Docker的新手,不知道自己做错了什么。 我应该在虚拟机内运行Gulp吗? 或者在一个容器内? 如果是的话,我如何在我的虚拟机/容器中安装和使用Gulp?
或者,也许我在docker-compose文件中做了错误的事情?
我很确定这个问题是由nginx引起的。 你应该添加sendfile off;
到你的nginx虚拟主机configuration。