我正在为我的项目使用Codeship CI。
我有selenium测试,我正在使用var result = context.Insurances
.GroupBy(m => new { m.InsuranceTypeId , m.ApplicantId })
.Select( g => new
{
MaxInsurance = g.OrderByDescending(m => m.IssueDate)
.Take(1)
})
.SelectMany(m => m.MaxInsurance);
的远程浏览器,但是它产生了大量的日志,所以我想禁用selenium/standalone-firefox
容器的stdout 。
我有什么想法可以做到这一点吗?
答案 0 :(得分:21)
在--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
此致
答案 1 :(得分:3)
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是可写的,其他位置可能会导致权限错误。
答案 2 :(得分:2)
我使用了这种方法:
JAVA_OPTS=-Dselenium.LOGGER.level=WARNING
在selenium/standalone-chrome
的泊坞窗图片中将其添加为ENV变量。