我正在开发基于 Debian 的 Virtual Box
我有 docker-compose yaml 文件:
version: '3'
services:
mydb:
build: ./db/
restart: always
networks:
- dockercompose-frontend
volumes:
- server_db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=root
healthcheck:
test: ["CMD", "mariadb-admin", "ping", "-h", "localhost", "--protocol=tcp"]
interval: 10s
timeout: 15s
retries: 5
ports:
- "3306:3306"
frontend:
build: .
restart: always
ports:
- "8080:80"
networks:
- dockercompose-frontend
environment:
PMA_HOST=mydb
PMA_ARBITRARY=1
PMA_PORT=3306
depends_on:
- mydb
volumes:
server_db:
driver: local
networks:
dockercompose-frontend:
driver: bridge
每个服务都有两个 Dockerfile,我只在其中安装必要的映像。
FROM mariabd:latest
RUN apt-get update && apt-get install -y iputils-ping
和
FROM phpmyadmin:5.2.0-apache
RUN apt-get update && apt-get install -y iputils-ping
当我使用
docker compose up -d
并检查 mydb 的健康状态时,它会抛出:
{
"Status":"healthy",
"FailingStreak": 0,
"Log": [{"Start": "2024-02-19T10:05:48.178379963-05:00",
"End": 2024-02-19T10:05:48.240662846-05:00",
"ExitCode": 0,
"Output":"mariadb-admin: Access denied for user [email protected] (using password: NO)"
}
还有,
docker exec dockercompose-mydb-1 service mariadb status
抛出“用户访问被拒绝 [电子邮件受保护](使用密码:否)”
之后
docker exec dockercompose-mydb-1 service mariadb restart
docker exec dockercompose-mydb-1 service mariadb status
它抛出相同的
您需要使用“-proot”在健康检查调用中包含密码,以免收到警告:
test: ["CMD", "mariadb-admin", "-proot", "ping", "-h", "localhost", "--protocol=tcp"]
类似问题:mysqladmin ping 错误代码