Docker-compose禁用其中一个容器的输出
我正在为我的项目使用Codeship CI。 我有seleniumtesting,我使用远程浏览器从selenium/standalone-firefox
但它产生吨日志,所以我想禁用标准输出selenium/standalone-firefox
容器 。
任何想法,我可以做到这一点?
在docker run
使用--log-driver=none
:
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
之外没有别的办法
把这个文件放到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
问候
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是可写的,其他位置可能会导致权限错误。
我使用这种方法:
JAVA_OPTS=-Dselenium.LOGGER.level=WARNING
在docker镜像中添加了selenium/standalone-chrome
作为ENVvariables。