如何查看docker-compose健康检查日志?
在我docker-compose.yml
,我有以下service
healthcheck
部分。 我想知道MariaDB是否准备好处理查询。 名为cmd
的service
被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漂亮的打印。