如何查看docker-compose健康检查日志?

在我docker-compose.yml ,我有以下service healthcheck部分。 我想知道MariaDB是否准备好处理查询。 名为cmdservice被configuration为依赖于condition: service_healthy

  db: image: mariadb:10 environment: MYSQL_RANDOM_ROOT_PASSWORD: 1 MYSQL_USER: user MYSQL_PASSWORD: password MYSQL_DATABASE: database healthcheck: test: ["CMD", "mysql", "--user=user", "--password=password", "--execute='SELECT 1'", "--host=127.0.0.1", "--port=3306"] interval: 1s retries: 30 

此健康检查不起作用,表明该服务不健康。

如何检查test CMD的输出?

您可以使用 :

 docker inspect --format "{{json .State.Health }}" <container name> | jq 

输出:

 { "Status": "unhealthy", "FailingStreak": 63, "Log": [ { "Start": "2017-03-11T20:49:19.668895201+03:30", "End": "2017-03-11T20:49:19.735722044+03:30", "ExitCode": 1, "Output": "ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''SELECT 1'' at line 1\n" 

并寻找输出部分。

仅获得输出:

 docker inspect --format "{{json .State.Health }}" mariadb_db_1 | jq '.Log[].Output' 

随意交换jq的任何工具,你使用JSON漂亮的打印。