.NET5 C#控制台应用docker-compose报services.consoleapp1 must be a mapping如何解决
问题解决说明
报错「services.consoleapp1 must be a mapping」的原因
- 该报错本质是YAML格式缩进错误:Docker Compose的YAML配置对缩进规则要求极严格,
services下的服务配置项需统一使用2个空格作为层级缩进符,禁止使用Tab键、禁止层级缩进错乱,你可以先检查当前docker-compose.yml的缩进是否和自动生成的标准格式一致。
控制台应用在docker-compose中正常运行的配置修改
自动生成的配置默认没有适配控制台交互场景,会出现容器启动后立即退出的问题,不需要修改Dockerfile,只需在服务配置中追加两个参数即可,修改后的完整docker-compose.yml如下:
version: '3.4' services: consoleapp1: image: ${DOCKER_REGISTRY-}consoleapp1 build: context: . dockerfile: ConsoleApp1/Dockerfile # 新增以下两行配置 stdin_open: true # 打开标准输入 tty: true # 分配虚拟终端,适配控制台交互场景
运行验证
执行命令docker-compose up --build即可正常构建并启动控制台应用,容器会保持运行状态支持输入输出交互。
内容的提问来源于stack exchange,提问作者Igor. A
相关产品推荐
相关产品推荐

