可能是由于以下原因导致的:
- Docker镜像问题:testing.postgresql是一个PostgreSQL的测试镜像,它可能没有包含initdb命令。你可以尝试使用其他的PostgreSQL镜像,如official PostgreSQL镜像或其他经过验证的镜像。
- 版本兼容性问题:initdb命令在不同的PostgreSQL版本中可能有所不同。确保你使用的testing.postgresql镜像与你的Docker环境兼容,并且支持initdb命令。
解决这个问题的方法有以下几种:
- 自定义Docker镜像:你可以基于testing.postgresql镜像创建自定义的Docker镜像,并在其中添加initdb命令。你可以编写一个Dockerfile,使用FROM指令指定testing.postgresql镜像作为基础镜像,并在其中安装initdb命令。
- 使用其他PostgreSQL镜像:尝试使用其他经过验证的PostgreSQL镜像,确保它们包含initdb命令。你可以在Docker Hub或其他镜像仓库中搜索可用的PostgreSQL镜像,并查看其文档或说明以确认是否包含initdb命令。
- 手动初始化数据库:如果无法找到包含initdb命令的镜像,你可以手动初始化数据库。首先,创建一个空的数据目录,并确保该目录在Docker容器中可访问。然后,使用docker run命令启动一个PostgreSQL容器,并将数据目录挂载到容器中。在容器中,使用initdb命令手动初始化数据库。
总结起来,解决在testing.postgresql中找不到initdb命令的问题的方法包括自定义Docker镜像、使用其他PostgreSQL镜像或手动初始化数据库。具体选择哪种方法取决于你的需求和环境。