在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
可能需要进行。