docker 服务健康检查

docker 服务健康检查

services:
    httpd:
        image: php824:apache-mysqli
        ports:
            - 80:80
            - 443:443
        volumes:
            - /path/to/httpd_conf/:/etc/apache2/
            - /path/to/www:/var/www/html
            - /etc/localtime:/etc/localtime:ro#同步主机和镜像的时间
        depends_on:
            mariadb:
                condition: service_healthy


    mariadb:
        image: mariadb:10.7.8
        volumes:
            - /path/to/db_data/:/var/lib/mysql/
            - /path/to/mariadb_conf/:/etc/mysql/
            - /etc/localtime:/etc/localtime:ro
        environment:

#这个环境变量只在初始化数据库的时候有用,在数据目录里有文件了之后这个环境变量就没用了,所以写什么都可以
            MYSQL_ROOT_PASSWORD: 123456
        healthcheck:
#这里的test有两种写法,写成列表形式,在日志里总是警告不知道为什么,但是写成字符串后就没问题了。而且列表形式要把每一项都用引号括起来,也就是["cmd","mysqladmin","ping","-h","localhost","-u","healthcheck"]
            test: "mysqladmin ping -h localhost -u healthcheck"
            interval: 8s
            timeout: 5s
            retries: 3

PS:所有的冒号后面要有一个空格,不然会检查出语法问题。

Comments are closed.