diff --git a/Dockerfile b/Dockerfile index da97e8e806bf6a6423ab4b621ffbf363d0614957..8b6490a4a435b36c2d7577b2396ea81879d0cd9b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ FROM node:6 +# RUN mkdir /tmp/.X11-unix/ && chmod 777 /tmp/.X11-unix/ RUN apt-get update && apt-get install -y \ apt-utils \ + dbus-x11 \ xvfb RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \ @@ -10,7 +12,7 @@ RUN wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key && apt-get install -y google-chrome-stable \ && google-chrome --version -RUN groupadd -r wechaty && useradd -m -r -g wechaty wechaty -d /wechaty +# RUN groupadd -r wechaty && useradd -m -r -g wechaty wechaty -d /wechaty WORKDIR /wechaty COPY package.json . @@ -23,5 +25,5 @@ RUN npm link \ ENTRYPOINT [ "/wechaty/entrypoint.sh" ] CMD [ "start" ] -RUN chown -R wechaty.wechaty /wechaty -USER wechaty +# RUN chown -R wechaty.wechaty /wechaty +# USER wechaty diff --git a/entrypoint.sh b/entrypoint.sh index 950cb7d60183d68ef806aa427da1f42fc558c44d..74b11f0f0ccd74789b31282bec9c7340434cc4f0 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -3,7 +3,9 @@ # Credit: https://github.com/cusspvz/node.docker/blob/master/entrypoint # -echo "Docker Starting Wechaty v$(wechaty-version)" +echo +echo "Starting Wechaty v$(wechaty-version) ..." +echo # to identify run env (for tests) export WECHATY_DOCKER='docker' @@ -15,7 +17,7 @@ echo "WECHATY_HEAD=$WECHATY_HEAD" if [ "$WECHATY_HEAD" != "phantomjs" ]; then export DISPLAY=':99.0' - Xvfb :99 -screen 0 1024x768x24 & + Xvfb :99 -ac -screen 0 640x480x8 -nolisten tcp & echo "Xvfb started on DISPLAY=$DISPLAY" fi diff --git a/package.json b/package.json index 0c7879011cddba95c71b7c09d3975e1fb2d7136f..4216c6ea5aebe518fb7cc019ffd744fd6835d6c9 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "pretest": "npm run lint", "start": "node bin/io-bot", "demo": "node example/ding-dong-bot.js", - "test": "cross-env LC_ALL=C WECHATY_LOG=info ava --timeout=10m \"{src,test}/**/*.spec.js\"", + "test": "cross-env LC_ALL=C WECHATY_LOG=info ava --serial --timeout=10m \"{src,test}/**/*.spec.js\"", "testdev": "cross-env LC_ALL=C WECHATY_LOG=silly ava --verbose --fail-fast --timeout=3m" }, "repository": { diff --git a/script/start-xvfb.sh b/script/start-xvfb.sh index aa60a88a5044580e34de06c880ae9e0d9a049b95..d722ec4535db8748a845cbe93c58a280ebe4b7a6 100755 --- a/script/start-xvfb.sh +++ b/script/start-xvfb.sh @@ -8,6 +8,9 @@ [ "$DISPLAY" = "" ] && { export DISPLAY=':99.0' echo "Set DISPLAY to $DISPLAY" +} + +[ "$(ps a | grep Xvfb | grep -v grep | wc -l)" = 0 ] && { Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & echo "Xvfb started"