如何在Docker组合之后运行gulpfile?

你能帮助Docker-compose在Docker容器中运行gulfile任务,所以它应该从gulp任务编译SCSS文件。 这里是我的主机上的文件结构:

/application --/config --/models --/public ----/scss ----/css ----index.html ----gulfile.js --/routes .dockerignore .gitignore Dockerfile docker-compose.yml package.json server.js 

我已经在/application/public文件夹中定义了gulpfile :这里是我的gulpfile上下文:

 var gulp = require('gulp'); var sass = require('gulp-sass'); gulp.task('sass', function() { gulp.src('./scss/styles.scss') .pipe(sass().on('error', sass.logError)) .pipe(gulp.dest('./css')); }); gulp.task('sass:watch', function() { gulp.watch('./scss/styles.scss', ['sass']); }); 

这里是我的Docker文件上下文:

 FROM node:6 RUN mkdir -p /app WORKDIR /app COPY . /app RUN npm install nodemon -g && npm install bower -g && npm install gulp -g RUN cd /app RUN npm install RUN cd /app/public && bower install --allow-root RUN cd /app COPY . /app 

这里是我的docker-compose.yml文件上下文:

 version: '2' services: web: build: . command: nodemon /app/server.js volumes: - .:/app/ - /app/node_modules - /app/public - /app/config - /app/models - /app/routes ports: - "3000:3000" depends_on: - mongo mongo: image: mongo:latest ports: - "27018:27017" restart: always 

理想情况下,从scss docker-compose文件运行命令开始观看/application/public文件夹内的scss文件将是一件好事,但我浪费了几天的时间来解决这个问题,我也尝试运行容器内的gulpfile,实际上它工作正常,但主机没有反映变化。 请不要build议我使用现成的Docker-Hub映像,我已经使用了它们中的几个,它并没有解决我的问题

我会感谢任何帮助,链接,信息或现成的解决scheme。 最好的祝福

您可以在撰写文件中添加一个单独的服务,以在单独的容器中运行单独的命令(请参阅下面的网页和gulp服务行

 version: '2' services: web: &web build: . command: nodemon /app/server.js volumes: - .:/app/ - /app/node_modules - /app/public - /app/config - /app/models - /app/routes ports: - "3000:3000" depends_on: - mongo gulp: *web command: <gulp command to watch files> mongo: image: mongo:latest ports: - "27018:27017" restart: always