Docker Compose执行报错:无法找到/config/certs.yml配置文件
问题
我尝试使用Docker Desktop按Wazuh官方教程的单节点部署方式,在Docker容器中安装Wazuh。在Docker Desktop创建新容器后,在VS Code中执行docker-compose命令时出现错误:命令始终在根目录查找/config/certs.yml,但该文件实际位于项目的config文件夹内。
我执行的命令:
docker-compose --project-directory /com.docker.devenvironments.code/single-node --file /com.docker.devenvironments.code/single-node/generate-indexer-certs.yml run --rm generator
目录结构:
我试过修改项目目录、切换到不同文件夹执行命令,问题依旧。希望能调整命令让它正确找到config文件夹里的certs.yml,或者直接从com.docker.devenvironments.code文件夹运行命令。
解决方案
1. 修正generate-indexer-certs.yml中的路径配置
错误根源是generate-indexer-certs.yml里的卷挂载或文件引用使用了绝对路径/config/certs.yml,未关联到主机的项目目录。打开该文件做如下调整:
- 找到卷挂载配置,将主机路径改为相对路径:
./config:/config,这样容器内的/config目录会映射到主机项目目录下的config文件夹,容器就能正确找到/config/certs.yml。
2. 简化命令执行流程(推荐)
先切换到项目根目录再执行命令,避免路径解析混乱:
cd /com.docker.devenvironments.code/single-node docker-compose -f generate-indexer-certs.yml run --rm generator
此时docker-compose会自动将当前目录作为项目目录,yml中的相对路径会被正确解析。
3. 显式指定文件路径(保留原命令结构时使用)
如果必须维持原命令结构,可在generate-indexer-certs.yml的command部分,将引用的/config/certs.yml替换为主机上的绝对路径/com.docker.devenvironments.code/single-node/config/certs.yml,但这种方式灵活性较差,不推荐。
内容的提问来源于stack exchange,提问作者pew
相关产品推荐
相关产品推荐

