Webpack导致Linux Alpine中的分段错误

我有一个通过Docker与Linux Alpine容器部署的PHP + VueJS应用程序。 这是我正在使用的configuration:

stages: - codestyle - test - deploy .setup_php7: &setup_php7 | apk add --update-cache php7 php7-curl php7-ctype php7-dom php7-iconv php7-json php7-mbstring php7-openssl php7-pdo php7-pdo_mysql php7-pdo_pgsql php7-pgsql php7-pear php7-pcntl php7-ph ar php7-session php7-xml php7-xmlreader php7-zlib php7-zip rm -f /usr/bin/php && ln -s $(which php7) /usr/bin/php mv .env.gitlab .env # Setup specific for PHP:7.0 # alpine:3.5 # PHP 7.0.21 [PHP Modules] Core date fileinfo filter hash libxml pcre readline Reflection SimpleXML SPL standard tokenizer xmlwriter .setup_php70: &setup_php70 | php -v php -m .setup_composer: &setup_composer | php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c 44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && php composer-setup.php && php -r "unlink('composer-setup.php');" php composer.phar global require hirak/prestissimo .setup_node: &setup_node | apk add --update-cache nodejs-current npm install npm rebuild npm run build <--- THAT'S WHERE IT FAILS npm run report 

问题是“npm run build”会以退出状态139触发分段错误错误:

 verbose stack Exit status 139 19 verbose stack at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16) 19 verbose stack at emitTwo (events.js:106:13) 19 verbose stack at EventEmitter.emit (events.js:191:7) 19 verbose stack at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) 19 verbose stack at emitTwo (events.js:106:13) 19 verbose stack at ChildProcess.emit (events.js:191:7) 19 verbose stack at maybeClose (internal/child_process.js:885:16) 19 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) 

构build脚本如下:

  process.env.NODE_ENV = "production"; const ora = require("ora"); const rm = require("rimraf"); const path = require("path"); const config = require("../configWebpack"); const webpack = require("webpack"); const webpackConfig = require("./webpack.prod.conf"); const spinner = ora("building for production..."); const dir = path.join(config.build.assetsRoot, config.build.assetsSubDirectory); rm(dir+"/*/", (err) => { webpack(webpackConfig, (err, stats) => { if (err) throw err; process.stdout.write(stats.toString({colors: true, modules: false, children: false, chunks: false, chunkModules: false, }) + "\n\n"); }); }); 

webpackConfig的执行导致错误(如果我删除它没有seg错误发生),那就是configuration:

  const path = require("path"); const webpack = require("webpack"); const merge = require("webpack-merge"); const HtmlWebpackPlugin = require("html-webpack-plugin"); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const OptimizeCSSPlugin = require("optimize-css-assets-webpack-plugin"); const CopyWebpackPlugin = require("copy-webpack-plugin"); const HtmlWebpackExcludeAssetsPlugin = require("html-webpack-exclude-assets-plugin"); const config = require("../configWebpack"); const myWebpackConfig = require("./webpack.base.conf"); const utils = require("./utils"); const env = process.env.NODE_ENV === "testing" ? require("../configWebpack/test.env") : config.build.env; const webpackConfig = merge(myWebpackConfig, { module: { rules: utils.styleLoaders({ sourceMap: config.build.productionSourceMap, extract: true, }), }, devtool: config.build.productionSourceMap ? "#source-map" : false, output: { path: config.build.assetsRoot, filename: utils.assetsPath("js/[name].[chunkhash].js"), chunkFilename: utils.assetsPath("js/[id].[chunkhash].js"), }, plugins: [ new ExtractTextPlugin({ filename: utils.assetsPath("css/[name].[contenthash].css", { allChunks: true }), }), ], }); module.exports = webpackConfig; 

我使用更多的插件,但这是实际可以运行的最低configuration,仍然会导致分段错误错误。 在本地环境中一切正常,包含完整configuration的构build脚本。

可能是什么问题?