在文件'./docker-compose.yml'中,服务'proxy-nginx'必须是映射而不是字符串?
Posted
技术标签:
【中文标题】在文件\'./docker-compose.yml\'中,服务\'proxy-nginx\'必须是映射而不是字符串?【英文标题】:In file './docker-compose.yml', service 'proxy-nginx' must be a mapping not a string?在文件'./docker-compose.yml'中,服务'proxy-nginx'必须是映射而不是字符串? 【发布时间】:2018-07-23 05:09:12 【问题描述】:我有以下docker-compose.yml
文件:
version: '3'
services:
proxy-nginx:
build:./nginx
ports:
- 80:80
当我运行 `docker-compose up 控制台日志时:
In file './docker-compose.yml', service 'proxy-nginx' must be a mapping not a string.
This answer 建议在端口周围使用引号:
version: '3'
services:
proxy-nginx:
build:./nginx
ports:
- "80:80"
还尝试了更多缩进端口:
version: '3'
services:
proxy-nginx:
build:./nginx
ports:
- 80:80
但结果还是一样。有什么想法吗?
【问题讨论】:
build: ./nginx
而不是build:./nginx
?缺少空格?
Docker compose error "In file './docker-compose.yml', service 'punjab' must be a mapping not a string."的可能重复
【参考方案1】:
尝试正确缩进端口:
version: '3'
services:
gogs-nginx:
build: ./nginx
ports:
- "80:80"
我认为问题在于解析器认为 ports 是另一个服务,因为它具有误导性的缩进。不过我不能怪它。
【讨论】:
尝试过并将其添加到问题中。还有其他想法吗? 我用端口值周围的引号更新了答案。我之前也尝试过这样做,但由于某种原因它仍然无法正常工作。所以我从 docker 站点 (docs.docker.com/compose/gettingstarted/…) 复制了一个 sn-p 并对其进行了更改,现在它可以工作了...以上是关于在文件'./docker-compose.yml'中,服务'proxy-nginx'必须是映射而不是字符串?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 AWS Elastic Container Service 中使用现有的 docker-compose.yml 文件?