在Docker容器中运行Gulp

情况

    • PHPのプロジェクトだが、Gulpを使ってCSSの圧縮をしている

 

    • 開発環境はDockerで構築している

 

    コンテナのオーケストレーションにはDocker Composeを使っている

目录结构

省略多少,但大致如此。

app
|-- index.php
|-- gulpfile.js          <-- これ
|-- docker-compose.yml
`-- docker
     |-- db
     |   |-- Dockerfile
     |   `-- my.cnf
     |-- nodejs
     |   `-- Dockerfile  <-- これ
     `-- web
         `-- Dockerfile

做过的事情 (zuò guò de shì

应用程序的界面大致是这样的

<html>
  <head>
    <link type="text/css" rel="stylesheet" href="/assets/css/style.min.css">
  </head>
</html>

可能不能运行,因为我对这个gulpfile.js进行了简化处理。

var gulp = require('gulp');
var $ = require('gulp-load-plugins')();

gulp.task('watch', function() {
  return gulp.src('./**/*.scss')
    .pipe($.plumber())
    .pipe($.sass())
    .pipe($.pleeease({
      autoprefixer: {
        browsers: ['last 2 versions', 'android >= 4', 'ios >= 8']
      },
      minifier: true,
    }))
    .pipe(gulp.dest('public/assets/css'));
});

创建以下Dockerfile。

FROM node:latest

RUN npm install -g gulp

WORKDIR /app
CMD gulp watch

将以下内容添加到docker-compose.yml文件中。

web:
    build: ./docker/web
    links:
        - db
    volumes:
        - ./:/app
    ports:
        - "8000:8000"

db:
    build: ./docker/db
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: hoge
        MYSQL_USER: hoge
        MYSQL_PASSWORD: hoge

nodejs:
    build: ./docker/nodejs
    volumes:
        - ./:/app

在volumes中,使文件可以通过gulp进行操作。

使用方法

docker-compose up -d

只需运行一次,即可启动 gulp watch。

只有在初次启动时才需要安装node_modules。

docker-compose run nodejs npm install

可能需要进行。

广告
将在 10 秒后关闭
bannerAds