プロジェクトにCodeship CIを使用しています。私はSeleniumテストを持っており、Selenium/standalone-firefox
からリモートブラウザを使用していますが、大量のログを生成しているので、Selenium/standalone-firefox
コンテナのstdoutを無効にしたい。
どうすればこれを行うことができますか?
私はこのアプローチを使用しました:
Java_OPTS=-Dselenium.LOGGER.level=WARNING
Selenium/standalone-chrome
のドッカーイメージにENV変数として追加されました。
--log-driver=none
でdocker run
を使用:
docker run -d --log-driver=none Selenium/standalone-firefox
またはdocker-compose.yml
version: '2'
services:
Selenium:
ports:
- "4444:4444"
logging:
driver: "none"
image:
Selenium/standalone-firefox
次を使用してログをファイルに送信することもできます。
docker run -d --log-driver=none -e SE_OPTS="log log.txt" Selenium/standalone-firefox
またはdocker-compose.yml
version: '2'
services:
Selenium:
ports:
- "4444:4444"
logging:
driver: "none"
environment:
- SE_OPTS="log log.txt"
image:
Selenium/standalone-firefox
Docker-composeファイルバージョン1の場合、entry_point.sh
を変更する以外に方法はありません
このファイルをdocker-compose.ymlの横に配置しますentry_point.sh
#!/bin/bash
source /opt/bin/functions.sh
export GEOMETRY="$SCREEN_WIDTH""x""$SCREEN_HEIGHT""x""$SCREEN_DEPTH"
function shutdown {
kill -s SIGTERM $NODE_PID
wait $NODE_PID
}
if [ ! -z "$SE_OPTS" ]; then
echo "appending Selenium options: ${SE_OPTS}"
fi
SERVERNUM=$(get_server_num)
xvfb-run -n $SERVERNUM --server-args="-screen 0 $GEOMETRY -ac +extension RANDR" \
Java ${Java_OPTS} -jar /opt/Selenium/selenium-server-standalone.jar \
${SE_OPTS} >/dev/null &
NODE_PID=$!
trap shutdown SIGTERM SIGINT
wait $NODE_PID
これを使用するdocker-compose.yml
:
Selenium:
ports:
- "4444:4444"
volumes:
- .:/mnt
image:
Selenium/standalone-firefox
command: bash /mnt/entry_point.sh >/dev/null
よろしく
CodeShipは、環境設定を受け入れるdocker-compose v1のカスタムバリアントを使用します。 codeship-services.ymlの以下が私のために働きました:
Selenium:
image: Selenium/standalone-chrome
cached: true
container_name: Selenium
environment:
- SE_OPTS=-log /tmp/log.txt
SE_OPTS値は引用符で囲まないでください。/tmpは書き込み可能ですが、他の場所では権限エラーが発生する可能性があります。