2016-10-12 2 views
6

Я использую Codeship CI для моего проекта. У меня есть тесты на селен, и я использую удаленный браузер от selenium/standalone-firefox, но он производит тонны журналов, поэтому Я хочу отключить stdout для selenium/standalone-firefox контейнера.Docker-compose отключить вывод на одном из контейнеров

Любые идеи, как я могу это сделать?

+0

В зависимости от версии для сборки докеров вы можете использовать «log_driver: none» или «logging: \ driver: none»? https://docs.docker.com/compose/compose-file/#/logging – mgor

+0

Даже с помощью log_driver: none Я получаю такой же вывод на stdout – Blejwi

+0

Здравствуйте, вы решили проблему? –

ответ

2

Я использовал этот подход:

JAVA_OPTS=-Dselenium.LOGGER.level=WARNING 

Добавлено как ENV переменные в Докер изображение для selenium/standalone-chrome.

11

--log-driver=none Использование в docker run:

docker run -d --log-driver=none selenium/standalone-firefox 

Или докер-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 

Для Докер-Compose версии файла 1 нет другого пути, кроме изменения entry_point.sh

поместить этот файл следующий ваш Докер-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 

С уважением

+0

Извините, но не помогло :( – Blejwi

+0

Просто проверьте, используете ли вы последнюю версию 'docker-compose', а также проверьте, не является ли ваш' docker-compose.yml' начинается с 'version: '2'' –

+0

Я не могу использовать версию для usre:' 2 'из-за кодекса, уже пробовал с log_driver в v1 – Blejwi

2

В 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 можно записывать, другие местоположения могут привести к ошибке разрешения.