Docker和gulp

我正在使用Windows 7并在boot2docker上运行虚拟机.

泊坞窗,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以在VM外部使用postcss编译我的CSS文件,但它似乎在我的VM的共享文件夹中破坏了我的输出文件.例如,如果我编译这个:

body {
  background: red;
}

我在输出文件中得到这个(这是我想要的):

body{background:red}

但是,如果我像这样重新编译postcss样式表:

body {
  text-align: center;
}

我在输出文件中得到了这个:

body{background:red}���

我的本地(Windows)文件已正确更新,此错误仅在VM的共享文件夹中的文件中.

我是Docker的新手,不知道我做错了什么.我应该在VM内部运行Gulp吗?或者在容器内?如果是这样,我如何在我的VM /容器中安装和使用Gulp?

或者也许我在docker-compose文件中做错了什么?

最佳答案
我很确定这个问题是由nginx引起的.你应该关闭sendfile;到你的nginx虚拟主机配置.

转载注明原文:Docker和gulp - 代码日志