web-dev-qa-db-ja.com

Docker-composeコンテナーの1つで出力を無効にする

プロジェクトにCodeship CIを使用しています。私はSeleniumテストを持っており、Selenium/standalone-firefoxからリモートブラウザを使用していますが、大量のログを生成しているので、Selenium/standalone-firefoxコンテナのstdoutを無効にしたい

どうすればこれを行うことができますか?

19
Blejwi

私はこのアプローチを使用しました:

Java_OPTS=-Dselenium.LOGGER.level=WARNING

Selenium/standalone-chromeのドッカーイメージにENV変数として追加されました。

2
Blejwi

--log-driver=nonedocker 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

よろしく

28

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は書き込み可能ですが、他の場所では権限エラーが発生する可能性があります。

3
Piers C