Windows下Docker部署Chainlink Node报错:invalid compose project
解决Windows下Docker Compose运行Chainlink节点的卷路径错误问题
你的错误核心是Windows下Docker Compose绑定挂载的路径格式错误,同时存在postgres数据目录的拼写错误,以下是具体修正方案:
错误原因拆解
- 你使用Windows风格的反斜杠
\作为路径分隔符,Docker Compose会将这种格式识别为「命名卷」而非「本地目录绑定挂载」,因此触发"refers to undefined volume"错误。 - Postgres的数据目录拼写错误:
\var\lib\postgressql\data\中的postgressql多了一个s,正确路径应为postgresql。 - Chainlink容器基于Linux环境运行,命令中的路径需使用正斜杠
/。
修正后的Docker Compose配置
如果你的docker-compose.yml文件放在C:\Users\Jacob\Desktop\Bachelorarbeit\Chainlink-Node\chainlink-goerli目录下,推荐用相对路径(避免绝对路径的格式冲突):
services: pg_chainlink: image: "postgres" ports: - "5432:5432" env_file: - database.env volumes: - ./data:/var/lib/postgresql/data # 新增健康检查,确保Postgres就绪后再启动Chainlink healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 chainlink: image: "smartcontract/chainlink:1.3.0" env_file: - .env depends_on: pg_chainlink: condition: service_healthy ports: - "6688:6688" volumes: - ./chainlink-volume:/chainlink command: node start --password /chainlink/password.txt --api /chainlink/apicredentials.txt
若必须使用绝对路径,Windows下的正确写法有两种:
- 正斜杠格式:
/C/Users/Jacob/Desktop/Bachelorarbeit/Chainlink-Node/chainlink-goerli/data:/var/lib/postgresql/data - 双反斜杠格式:
C:\\Users\\Jacob\\Desktop\\Bachelorarbeit\\Chainlink-Node\\chainlink-goerli\\data:/var/lib/postgresql/data
额外注意事项
- 确保
database.env和.env文件与docker-compose.yml在同一目录下,且配置项(如Postgres用户名、密码)正确。 chainlink-volume目录下必须存在password.txt和apicredentials.txt文件,否则Chainlink启动会失败。- 打开Docker Desktop的「设置->资源->文件共享」,勾选你的C盘,允许Docker访问本地目录。
内容的提问来源于stack exchange,提问作者LostBoy
相关产品推荐
相关产品推荐

