Showing
11 changed files
with
77 additions
and
23 deletions
@@ -6,26 +6,23 @@ | @@ -6,26 +6,23 @@ | ||
6 | # nginx version: 1.12.0 | 6 | # nginx version: 1.12.0 |
7 | ############################################################ | 7 | ############################################################ |
8 | 8 | ||
9 | -#base image : ccr.ccs.tencentyun.com/yoho-base/nodejs:8.9.1 | ||
10 | -FROM ccr.ccs.tencentyun.com/yoho-base/nodejs:8.9.1 | 9 | +#base image : ccr.ccs.tencentyun.com/yoho-base/node |
10 | +FROM ccr.ccs.tencentyun.com/yoho-base/node:10.4.1-alpine-fix | ||
11 | 11 | ||
12 | MAINTAINER feng.chen <feng.chen@yoho.cn> | 12 | MAINTAINER feng.chen <feng.chen@yoho.cn> |
13 | 13 | ||
14 | ENV NODE_ENV=production \ | 14 | ENV NODE_ENV=production \ |
15 | NODE_HOME=/home | 15 | NODE_HOME=/home |
16 | 16 | ||
17 | -COPY yoho-blk-wap.tar.gz /home | ||
18 | - | ||
19 | RUN cd /home && \ | 17 | RUN cd /home && \ |
20 | mkdir -p /home/yoho-blk-wap && \ | 18 | mkdir -p /home/yoho-blk-wap && \ |
21 | - mkdir -p /Data/log/yoho-blk-wap && \ | ||
22 | - mkdir -p /Data/log/yohoblk-wap && \ | ||
23 | - tar -xzvf yoho-blk-wap.tar.gz -C /home/yoho-blk-wap && \ | ||
24 | - rm -rf yoho-blk-wap.tar.gz | ||
25 | - | 19 | + mkdir -p /Data/log/yoho-blk-wap |
20 | + | ||
21 | +COPY . /home/yoho-blk-wap | ||
22 | + | ||
26 | WORKDIR /home/yoho-blk-wap | 23 | WORKDIR /home/yoho-blk-wap |
27 | 24 | ||
28 | #expose port | 25 | #expose port |
29 | -EXPOSE 6004 | ||
30 | - | ||
31 | -CMD ["node","/home/yoho-blk-wap/app.js"] | 26 | +EXPOSE 6002 |
27 | + | ||
28 | +CMD ["node","/home/yoho-blk-wap/app.js"] |
build/node-build.js
0 → 100644
1 | +const shelljs = require('shelljs'); | ||
2 | +const path = require('path'); | ||
3 | + | ||
4 | +const distDir = path.join(__dirname, '../dist/node'); | ||
5 | + | ||
6 | +shelljs.rm('-rf', distDir); | ||
7 | +shelljs.mkdir('-p', distDir); | ||
8 | + | ||
9 | +const cpPaths = [ | ||
10 | + 'favicon.ico', | ||
11 | + '.npmrc', | ||
12 | + 'process.json', | ||
13 | + 'Dockerfile', | ||
14 | + 'yarn.lock', | ||
15 | + 'package.json', | ||
16 | + '*.js', | ||
17 | + 'config', | ||
18 | + 'apps', | ||
19 | + 'utils', | ||
20 | + 'doraemon', | ||
21 | + 'src/index.html', | ||
22 | + 'manifest.json' | ||
23 | +]; | ||
24 | + | ||
25 | +new Promise(resolve => { // 加载manifest.json文件 | ||
26 | + resolve(); | ||
27 | +}).then(() => { // 拷贝node代码 | ||
28 | + cpPaths.forEach(p => { | ||
29 | + let dist = distDir; | ||
30 | + let file = p; | ||
31 | + | ||
32 | + if (typeof p === 'object') { | ||
33 | + dist = path.join(dist, p[1]); | ||
34 | + file = p[0]; | ||
35 | + | ||
36 | + if (!shelljs.test('-e', dist)) { | ||
37 | + shelljs.mkdir('-p', dist); | ||
38 | + } | ||
39 | + } | ||
40 | + shelljs.cp('-R', path.join(__dirname, '../', file), dist); | ||
41 | + }); | ||
42 | +}).then(() => { // 安装依赖和清理node_modules | ||
43 | + shelljs.cd(distDir); | ||
44 | + if (shelljs.exec('yarn --production=true').code !== 0) { | ||
45 | + throw 'yarn install faild'; | ||
46 | + } | ||
47 | +}).catch(error => { | ||
48 | + console.error(`error:${error}`); | ||
49 | + return process.exit(1); //eslint-disable-line | ||
50 | +}); | ||
51 | + | ||
52 | + | ||
53 | + | ||
54 | + | ||
55 | + | ||
56 | + |
@@ -2,7 +2,7 @@ const path = require('path'); | @@ -2,7 +2,7 @@ const path = require('path'); | ||
2 | const ExtractTextPlugin = require('extract-text-webpack-plugin'); | 2 | const ExtractTextPlugin = require('extract-text-webpack-plugin'); |
3 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); | 3 | const FriendlyErrorsPlugin = require('friendly-errors-webpack-plugin'); |
4 | const pkg = require('../package.json'); | 4 | const pkg = require('../package.json'); |
5 | -const distDir = path.join(__dirname, `../public/dist/${pkg.name}/bundle`); | 5 | +const distDir = path.join(__dirname, `../dist/${pkg.name}/bundle`); |
6 | 6 | ||
7 | module.exports = { | 7 | module.exports = { |
8 | output: { | 8 | output: { |
@@ -57,7 +57,7 @@ exports.createApp = async (app) => { | @@ -57,7 +57,7 @@ exports.createApp = async (app) => { | ||
57 | res.status(200).end(); | 57 | res.status(200).end(); |
58 | }); | 58 | }); |
59 | 59 | ||
60 | - app.use(favicon(path.join(__dirname, '/public/favicon.ico'))); | 60 | + app.use(favicon(path.join(__dirname, '/favicon.ico'))); |
61 | app.use(express.static(path.join(__dirname, 'public'))); | 61 | app.use(express.static(path.join(__dirname, 'public'))); |
62 | 62 | ||
63 | // 添加请求上下文 | 63 | // 添加请求上下文 |
1 | #!/bin/bash | 1 | #!/bin/bash |
2 | wordir=$2 | 2 | wordir=$2 |
3 | +needBuild=$1 | ||
3 | cd $wordir | 4 | cd $wordir |
4 | -rm -rf yoho-blk-wap.tar.gz | ||
5 | -yarn | ||
6 | -if [[ $1 == "TEST1" ]] || [[ $1 == "TEST2" ]] || [[ $1 == "TEST3" ]] | ||
7 | -then | ||
8 | -yarn build | 5 | +yarn --production=false |
6 | +if [ "$needBuild" == "YES" ];then | ||
7 | + yarn build | ||
9 | fi | 8 | fi |
10 | -tar -czvf yoho-blk-wap.tar.gz * | 9 | +yarn build:node --build=$needBuild |
10 | +/usr/local/bin/node-prune ./dist/node/node_modules |
@@ -44,7 +44,7 @@ const routes = [ | @@ -44,7 +44,7 @@ const routes = [ | ||
44 | 44 | ||
45 | const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV; | 45 | const isDev = process.env.NODE_ENV === 'development' || !process.env.NODE_ENV; |
46 | let renderer; | 46 | let renderer; |
47 | -let template = fs.readFileSync(path.join(__dirname, '../../src/index.html'), 'utf-8'); | 47 | +let template = fs.readFileSync(path.join(__dirname, '../../index.html'), 'utf-8'); |
48 | 48 | ||
49 | const microCache = LRU({ // eslint-disable-line | 49 | const microCache = LRU({ // eslint-disable-line |
50 | max: 1000, | 50 | max: 1000, |
favicon.ico
0 → 100755
No preview for this file type
manifest.json
0 → 100644
1 | +{} |
@@ -14,6 +14,7 @@ | @@ -14,6 +14,7 @@ | ||
14 | "server": "NODE_ENV=production webpack --config ./build/webpack.server.conf.js", | 14 | "server": "NODE_ENV=production webpack --config ./build/webpack.server.conf.js", |
15 | "static": "webpack-dev-server --config ./public/build/webpack.dev.config.js", | 15 | "static": "webpack-dev-server --config ./public/build/webpack.dev.config.js", |
16 | "build": "NODE_ENV=production webpack --config ./public/build/webpack.prod.config.js && node ./build/build.js", | 16 | "build": "NODE_ENV=production webpack --config ./public/build/webpack.prod.config.js && node ./build/build.js", |
17 | + "build:node": "node ./build/node-build.js", | ||
17 | "performance": "NODE_ENV=performance webpack --config ./public/build/webpack.prod.config.js", | 18 | "performance": "NODE_ENV=performance webpack --config ./public/build/webpack.prod.config.js", |
18 | "online": "NODE_ENV=\"production\" node app.js", | 19 | "online": "NODE_ENV=\"production\" node app.js", |
19 | "debug": "DEBUG=\"express:*\" nodemon -e js,hbs -i public/ app.js", | 20 | "debug": "DEBUG=\"express:*\" nodemon -e js,hbs -i public/ app.js", |
@@ -5,7 +5,7 @@ const UglifyJsParallelPlugin = require('webpack-uglify-parallel'); | @@ -5,7 +5,7 @@ const UglifyJsParallelPlugin = require('webpack-uglify-parallel'); | ||
5 | const os = require('os'); | 5 | const os = require('os'); |
6 | const pkg = require('../../package.json'); | 6 | const pkg = require('../../package.json'); |
7 | const path = require('path'); | 7 | const path = require('path'); |
8 | -const distDir = path.join(__dirname, `../dist/${pkg.name}`); | 8 | +const distDir = path.join(__dirname, `../../dist/${pkg.name}`); |
9 | 9 | ||
10 | let base = require('./webpack.base.config'); | 10 | let base = require('./webpack.base.config'); |
11 | 11 |
-
Please register or login to post a comment