如何在“之后大口喝”;docker compose up“;?

如何在“之后大口喝”;docker compose up“;?,docker,gulp,docker-compose,Docker,Gulp,Docker Compose,您能否帮助在Docker容器中使用Docker compose运行gulp任务,以便它编译SCSS文件 主机上的我的文件结构: /application --/config --/models --/public ----/scss ----/css ----index.html ----gulfile.js --/routes .dockerignore .gitignore Dockerfile docker-compose.yml package.json server.js /appl

您能否帮助在Docker容器中使用
Docker compose
运行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.js

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']);
});
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
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
Dockerfile

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']);
});
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
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
docker compose.yml

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']);
});
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
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
理想情况下,最好从
docker compose.yml
文件运行命令,开始查看
/application/public
文件夹中的scss文件,但我浪费了几天时间来解决这个问题

此外,我还试着在容器内大口吞咽。实际上,它工作正常,但更改并没有反映在主机上

请不要建议使用现成的Docker Hub图像。我使用了它们,但它们并没有解决我的问题


我非常感谢您提供的任何帮助、链接、信息或现成的解决方案。

您可以在撰写文件中添加单独的服务,在单独的容器中运行单独的命令(请参阅下面的web行和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
版本:“2”
服务:
web:&web
生成:。
命令:nodemon/app/server.js
卷数:
-.:/app/
-/app/node\u模块
-/app/public
-/app/config
-/app/models
-/app/routes
端口:
- "3000:3000"
取决于:
-蒙戈
大口喝:*网
命令:
蒙戈:
图片:mongo:最新
端口:
- "27018:27017"
重新启动:始终

您可以在compose文件中添加单独的服务,以在单独的容器中运行单独的命令(请参见下面的web行和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
版本:“2”
服务:
web:&web
生成:。
命令:nodemon/app/server.js
卷数:
-.:/app/
-/app/node\u模块
-/app/public
-/app/config
-/app/models
-/app/routes
端口:
- "3000:3000"
取决于:
-蒙戈
大口喝:*网
命令:
蒙戈:
图片:mongo:最新
端口:
- "27018:27017"
重新启动:始终

您是否考虑过在compose文件中使用共享代码库和共享卷设置单独的服务?一个服务将运行gulp,另一个运行Node。这就是我运行rails+后台任务的方式。这是运行应用程序并运行gulp afetr的错误做法。当您使用基本节点映像运行Node应用程序时。y您可以安装gulp并复制和安装所有要求,docker compose up是否考虑过在您的compose文件中使用共享代码库和共享卷设置单独的服务?一个服务将运行gulp,另一个运行节点。这就是我运行rails+后台任务的方式。这是运行应用程序和运行gulp af的错误做法etr it。当您使用基本节点映像运行节点应用程序时,您可以安装gulp,复制并安装所有需求,并进行docker组装