weseek/growi-docker-compose

ビルド時に rimraf でエラーが発生する

Closed this issue · 5 comments

crowi-plusの公開ありがとうございます。
docker-compose版もあるとのことで、私の環境でこちらを試してみたところ、次のようなエラーが出てしまいました。


/opt/crowi-plus/node_modules/rimraf/bin.js:47
      throw er
      ^

Error: ENOTEMPTY: directory not empty, rmdir 'public/js'
    at Error (native)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crowi-plus@2.3.2 clean:js: `rimraf -- public/js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crowi-plus@2.3.2 clean:js script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-01-05T06_02_35_214Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crowi-plus@2.3.2 clean: `npm run clean:js && npm run clean:dll && npm run clean:report`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crowi-plus@2.3.2 clean script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-01-05T06_02_35_234Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! crowi-plus@2.3.2 build:prod: `npm run clean && webpack --config config/webpack.prod.js  --p               rogress --profile --bail`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the crowi-plus@2.3.2 build:prod script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-01-05T06_02_35_253Z-debug.log
The command '/bin/sh -c npm run build:prod' returned a non-zero code: 1

環境

OS:CentOS7
crowi-plus:2.3.2
Docker:17.09.0-ce
docker-compose:1.14.0

こちらの環境のせいでしょうか・・・?
お手数をお掛けしますが、確認をお願い致します。

@yu-i123 clone してからの手順を書いていただけますでしょうか。
build:prod してるってことは Dockerfile も編集しているのだとは思いますが、念のためその辺も確認したいです。

clone後はproxyの設定をした程度です。
編集後のDockerfileは次のものになります。

FROM weseek/crowi-plus:2.3.0

ENV APP_DIR /opt/crowi-plus/
#proxy
ENV HTTP_PROXY "http://xxx.xxx.xxx.xxx:xxx"
ENV HTTPS_PROXY "http://xxx.xxx.xxx.xxx:xxx"

# install dockerize
ENV DOCKERIZE_VERSION v0.5.0
RUN apk add --no-cache --virtual .dl-deps curl \
    && curl -SL -k https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSION/dockerize-alpine-linux-amd64-$DOCKERIZE_VERSION.tar.gz \
        | tar -xz -C /usr/local/bin \
    && apk del .dl-deps

WORKDIR ${APP_DIR}

# install plugins if necessary
RUN echo "install plugins" \
 && npm install --save --no-optional\
     crowi-plugin-lsx \
     crowi-plugin-pukiwiki-like-linker \
 && echo "done."
# you must rebuild if install plugin at least one
RUN npm run build:prod

それに伴い、docker network create --attachableでcrowi_plusBRというネットワークの作成及びdocker-compose.ymlも編集を行いましたが、変更点は以下の部分のみです。

services:
  app:
    build:
      context: .
      dockerfile: ./Dockerfile
    ports:
      - 3010:3000
    links:
  elasticsearch:
    image: elasticsearch:5.3-alpine
    environment:
      - "ES_JAVA_OPTS=-Xms2g -Xmx2g \
      -Dhttp.proxyHost=xxx.xxx.xxx.xxx -Dhttp.proxyPort=xxx \ 
      -Dhttps.proxyHost=xxx.xxx.xxx.xxx -Dhttps.proxyPort=xxx"
    command:

↓この部分は最下部に追記

networks:
    default:
        external:
            name:crowi_plusBR 

よろしくお願い致します。

FROM weseek/crowi-plus:2.3.0

と書いた Dockerfile にも関わらず、エラーメッセージは

npm ERR! crowi-plus@2.3.2 clean:js: `rimraf -- public/js`
npm ERR! Exit status 1

になっているので、どこかおかしいような…手順再確認をお願いします。

あとは、 public/js を消し去ってみる、とかですかね。。中に入る起動に必要なファイル群はビルド時に作成されるので消しても大丈夫です。

すみません、アップデートの影響か試したくてバージョンを下げたものを載せてしまいました。
実際には

FROM weseek/crowi-plus:2.3.0
FROM weseek/crowi-plus:2

の両方で同様のエラーが出ています。

ひとまずpublic/jsを消して出来ないか、試してみます

# install plugins if necessary
RUN echo "install plugins" \
 && npm install --save --no-optional\
     crowi-plugin-lsx \
     crowi-plugin-pukiwiki-like-linker \
 && echo "done."
# you must rebuild if install plugin at least one
RUN rm public/js/*
RUN npm run build:prod

このようにしてpublic/jsを削除して実行してみたところ無事ビルドできました。
なぜこのようなエラーが出たのかは分かりませんが、Wikiの方も問題なく使えているようです。

お忙しい中、助言感謝いたします。