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。