こんにちはジャムです。
久しぶりにLaradockでLaravel環境を構築した際に2つのエラーに遭遇したので、現象と対策を紹介します。
問題1
現象
laradockでnginxとmysqlをビルド&コンテナ起動をするために、コマンド叩きました!
$ docker-compose up -d nginx mysql
しかし、次のようなエラーが発生
ERROR: Service 'workspace' failed to build : The command
'/bin/sh -c if [ ${INSTALL_AST} = true ]; then
if [ $(php -r "echo PHP_MAJOR_VERSION;") != "5" ]; then
printf "\n" | pecl -q install ast-${AST_VERSION} &&
echo "extension=ast.so" >> /etc/php/${LARADOCK_PHP_VERSION}/mods-available/ast.ini
&& phpenmod -v ${LARADOCK_PHP_VERSION} -s cli ast ;fi ;fi' returned a non-zero code: 1
内容は、workspaceのビルドに失敗しました、そのコマンドは/bin/sh…ということです。astのインストールができなかったとのことです。
対策
astはPHPの解析用の拡張機能みたいなので、今回はインストールを無効にする事で対策としました。
laradockの.envファイル179行目にastをインストールするかを変更できますので、falseにする事でビルドできました!
- WORKSPACE_INSTALL_AST=true
+ WORKSPACE_INSTALL_AST=false
もしかしたら、バージョンダウンとかアップとかでも改善可能?とも思いましたが、今回は試していません。
問題2
現象
今回はlaravelのフロントページにvueを使うので、npm installを実施後、npm ru devでコンパイルしようとすると下記のエラーに遭遇
[webpack-cli] Invalid configuration object. Webpack has been initialized using a configuration object that does not match the API schema.
- configuration.module.rules[10] has an unknown property 'loaders'. These properties are valid:
object { compiler?, dependency?, descriptionData?, enforce?, exclude?, generator?, include?, issuer?, loader?, mimetype?, oneOf?, options?, parser?, realResource?, resolve?, resource?, resourceFragment?, resourceQuery?, rules?, sideEffects?, test?, type?, use? }
-> A rule description with conditions and effects for modules.
内容を見ると、webpack-cliのwebpackに不明なloaderというプロパティがあるよ、とのこと。
対策
いろいろ調べましたが、バージョンを指定することで解決しました。
「webpack」,「webpack-cli」,「webpack-dev-server」を下記バージョンにしました。
"devDependencies": {
"axios": "^0.19",
"bootstrap": "^4.0.0",
"cross-env": "^7.0",
"jquery": "^3.2",
"laravel-mix": "^5.0.1",
"lodash": "^4.17.19",
"popper.js": "^1.12",
"resolve-url-loader": "^3.1.2",
"sass": "^1.20.1",
"sass-loader": "^8.0.0",
"vue": "^2.5.17",
"vue-template-compiler": "^2.6.10",
+ "webpack": "^4.35.3",
+ "webpack-cli": "^3.3.6",
+ "webpack-dev-server": "^3.7.2"
},
"name": "www",
"dependencies": {
"vue-router": "^3.4.8"
}
以上です。
エラーが出るとやりたいと思っていた事がストップし、若干やる気が減る反面、解決すると自分の知識量が上がったり、自分では気づいていないライブラリの存在を知る事ができますね。
スポンサーリンク
スポンサーリンク