首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

错误:在文件'./docker-compose.yml‘中,服务'build’必须是映射而不是字符串

错误:在文件'./docker-compose.yml‘中,服务'build’必须是映射而不是字符串。

这个错误是由于在Docker Compose配置文件中,服务的'build'字段被错误地设置为字符串而不是映射。'build'字段用于指定构建服务镜像的相关配置。

正确的配置应该是一个映射,包含以下字段:

  • 'context':指定构建上下文的路径,即Dockerfile所在的目录。
  • 'dockerfile'(可选):指定使用的Dockerfile文件名,默认为'Dockerfile'。
  • 'args'(可选):指定构建参数,可以在Dockerfile中使用。
  • 'target'(可选):指定构建的目标阶段,用于多阶段构建。

以下是一个正确的示例:

代码语言:yaml
复制
services:
  myservice:
    build:
      context: ./path/to/build/context
      dockerfile: Dockerfile
      args:
        ARG_NAME: value
      target: target_stage

在这个示例中,'myservice'是服务的名称,'build'字段是一个映射,包含了构建服务镜像的相关配置。'context'字段指定了构建上下文的路径,'dockerfile'字段指定了使用的Dockerfile文件名,'args'字段指定了构建参数,'target'字段指定了构建的目标阶段。

对于这个错误,可以通过将'build'字段正确地设置为一个映射来解决。同时,建议使用腾讯云的容器服务产品Tencent Kubernetes Engine(TKE)来管理和运行容器化应用。TKE提供了强大的容器编排和管理能力,可以轻松部署和管理容器化应用。

更多关于Tencent Kubernetes Engine(TKE)的信息和产品介绍,请访问腾讯云官方网站:Tencent Kubernetes Engine(TKE)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker--compose学习

be run together in an isolated environment.docker-compose.yml配置文件配置所有服务,确保他们都可以一个关联环境中被运行起来 Run...dockerfile 备用Docker文件。Compose将使用备用文件来构建。 还必须指定构建路径。 args 添加构建镜像的参数,环境变量只能在构建过程访问。...---- container_name 指定一个自定义容器名称,不是生成的默认名称。...故可以像在应用中使用localhost一样使用服务的别名链接其他容器的服务,前提多个服务容器一个网络可路由联通) links也可以起到和depends_on相似的功能,即定义服务之间的依赖关系,从而确定服务启动的顺序...build选项,那么构建过程通过environment定义的环境变量将不会起作用。

1.3K20

《Docker极简教程》--Docker的高级特性--Docker Compose的使用

以下关于YAML语法的简介: 缩进: YAML使用缩进来表示数据结构的层次关系,不是使用花括号或其他符号。缩进一般两个空格或一个制表符。子项的缩进必须严格地相对于其父项。...注释可以出现在行的任何位置,但必须独立成行。 字符串字符串可以使用单引号' '或双引号" "括起来。如果字符串包含特殊字符,建议使用双引号括起来。...指定服务: docker-compose up service_name 指定要启动的服务名称,不是启动所有服务。可以同时指定多个服务,用空格分隔。...移除指定服务: docker-compose down service_name 指定要停止和移除的特定服务不是停止和移除所有服务。可以同时指定多个服务,用空格分隔。...显示指定服务的容器: docker-compose ps service_name 指定要显示的特定服务的容器,不是显示所有服务的容器信息。

11900

Docker 系列五(Docker Compose 项目).

项目 (project):由一组关联的应用容器组成的一个完整业务单元, docker-compose.yml 文件定义。     Docker Compose 的安装可以参考上一篇文章的内容。...以下常用命令 docker-compose.yml 同级目录下执行,否则需要 docker-compose -f [docker-compose.yml 路径] [命令]: docker-compose...docker-compose config:验证 Compose 文件docker-compose.yml)格式是否正确,若正确则显示配置。若格式错误则显示原因。...40000 #服务2,服务名叫redis redis: image: "redis:alpine"     注意每个服务必须通过 image 指令指定镜像或 build 指令(需要...1、build 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。

73520

Docker 总结 ubuntu

DEST_PATH不存在 该文件被保存到创建的文件DEST_PATH DEST_PATH不存在并以/ 错误条件:目标目录必须存在。...DEST_PATH存在并且一个文件 目标被源文件的内容覆盖 DEST_PATH存在并且一个目录 使用来自的基本名称将文件复制到此目录 SRC_PATH SRC_PATH指定目录 DEST_PATH...不存在 DEST_PATH被创建为一个目录,并且源目录的内容被复制到这个目录 DEST_PATH存在并且一个文件 错误情况:无法将目录复制到文件 DEST_PATH存在并且一个目录 SRC_PATH...mysql配置文件 /etc/mysql/conf.d,一般来说这没有必要,容器彼此之间隔离的,不存在端口占用情况,但如果宿主机 3306端口被占用,就不能映射到宿主机3306了,所以这里 3307.../code"] 注意: docker-compose.yml volumes 宿主机路径 相对于 执行 docker-compose up 处的路径, 不是 build.context 路径 PS

2.1K30

Docker-Compose的一些常用命令

选项包括: –rmi type,删除镜像,类型必须:all,删除compose文件定义的所有镜像;local,删除镜像名为空的镜像 -v, –volumes,删除已经compose文件定义的和匿名的附在容器上的数据卷...Compose模板文件一个定义服务、网络和卷的YAML文件。Compose模板文件默认路径当前目录下的docker-compose.yml,可以使用.yml或.yaml作为文件扩展名。.../dir 5、dockerfile 使用dockerfile文件来构建,必须指定构建路径 build: context: ....所以建议采用字符串格式。 11、extra_hosts 添加主机名的标签,会在/etc/hosts文件添加一些记录。...docker-compose.yml可以定义接入点,覆盖Dockerfile的定义: entrypoint: /code/entrypoint.sh 17、env_file docker-compose.yml

16.6K53

Docker-compose 安装与基本使用(四)

docker-compose.yml 文件定义组成应用程序的服务,以便各个服务一个隔离的环境中一起运行。 运行 docker-compose up 命令,启动并运行整个应用程序。...version: '2'# 表示该docker-compose.yml文件使用的version 2 file services: wzq-swagger-mng:# 指定服务名称 build...一个工程可包含多个服务,每个服务定义了容器运行的镜像、参数和依赖,一个服务可包括多个容器实例。 对应上面案例工程名称是 docker-compose.yml 所在的目录名。...docker-compose.yml 常用命令 docker-compose.yml Compose的默认模板文件。...需要注意的,当使用H0ST:CONTAINER格式映射端口时,容器端口小于60将会得到错误的接口,因为yaml会把xx:yy的数字解析为60进制。因此,建议使用字符串的形式。

3.4K20

Docker Compose安装与配置文件详解

docker pull redis 5.通过 docker-compose.yml 定义服务 项目目录下创建 docker-compose.yml 文件来定义一组服务。...docker-compose.yml YAML 格式的文件,每个要启用的服务都使用一个 YAML 的散列键定义,服务以 Docker 容器的形式表现,同时定义服务启动时的运行属性。...,但是构建成功后取消, docker-compose.yml 文件也支持这样的写法: build: context: ..../apps/web.env - /opt/secrets.env 注意的这里所说的环境变量对宿主机的 Compose 而言的,如果在配置文件中有 build 操作,这些变量并不会进入构建过程,...docker-compose.yml定义的容器,我们需要一个特殊的标签,就是external_links,它可以让Compose项目里面的容器连接到那些项目配置外部的容器(前提外部容器必须至少有一个容器连接到与项目内的服务的同一个网络里面

2.2K20

docker微服务初体验配置文件composedocker compose使用

默认的模板文件 docker-compose.yml,其中定义的每个服务必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。...如果使用 build 指令, Dockerfile 设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需 docker-compose.yml 再次设置...,但是构建成功后取消, docker-compose.yml 文件也支持这样的写法: build: context: ....而在 docker-compose.yml 可以定义一个专门存放变量的文件。...docker-compose.yml定义的容器,我们需要一个特殊的标签,就是external_links,它可以让Compose项目里面的容器连接到那些项目配置外部的容器(前提外部容器必须至少有一个容器连接到与项目内的服务的同一个网络里面

2.9K50

docker微服务初体验

默认的模板文件 docker-compose.yml,其中定义的每个服务必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)来自动构建。...如果使用 build 指令, Dockerfile 设置的选项(例如:CMD, EXPOSE, VOLUME, ENV 等) 将会自动被获取,无需 docker-compose.yml 再次设置...,但是构建成功后取消, docker-compose.yml 文件也支持这样的写法: build: context: ....而在 docker-compose.yml 可以定义一个专门存放变量的文件。...docker-compose.yml定义的容器,我们需要一个特殊的标签,就是external_links,它可以让Compose项目里面的容器连接到那些项目配置外部的容器(前提外部容器必须至少有一个容器连接到与项目内的服务的同一个网络里面

2.3K80

容器实战指北:一篇让你快速上手Docker的全指导

|编写docker-compose.yml docker-compose.yml的编写也比较简单,参考下面的例子: version: '3' services:  web:    build: ....build 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。 Compose 将会利用它自动构建这个镜像,然后使用这个镜像。.../apps/web.env  - /opt/secrets.env 环境变量文件每一行必须符合格式,支持 # 开头的注释行。...# common.env: Set development environment PROG_ENV=development expose 暴露端口,但不映射到宿主机,只被连接的服务访问。...extra_hosts: - "googledns:8.8.8.8" - "dockerhub:52.1.157.61" 会在启动后的服务容器 /etc/hosts 文件添加如下两条条目。

77820

066. Docker Compose 集成式应用组合

可以随时项目目录下运行 docker-compose build 来重新构建服务。选项包括: --force-rm 删除构建过程的临时容器。...config 验证 Compose 格式是否正确,若正确则显示配置,若格式错误显示错误原因。 exec 进入指定的容器。 images 列出 Compose 文件包含的镜像。...每个服务必须通过 image 指令指定镜像或 build 指令(需要 Dockerfile)等来自动构建生成镜像。...如果使用 build 指令, Dockerfile 设置的选项(例如:CMD、EXPOST、VOLUME、ENV 等)将会自动被获取,无需 docker-compose.yml 再次设置。...build 指定 Dockerfile 所在文件夹的路径(可以是绝对路径,或者相对 docker-compose.yml 文件的路径)。

88130

docker-compose个好东西,越用越香

针对以上应用程序,根目录下创建docker-compose.yml 文件: version: "3.4" services: app: build: context: ....其中的[extra_hosts]容器内添加主机名映射, 类比与 我们的电脑上hosts文件增加一行主机名映射关系, 这个稍后会细说 添加Logging配置节,配置web程序和nginx日志大小(10...docker-compose.yml文件[extra_hosts]的用法 当前程序中使用了宿主机的Redis服务,app容器内localhost指示的容器自身,为访问宿主机redis: [extra_hosts...网桥网关 172.18.0.1,docker-compose.yml 文件配置了上述[extra_hosts],在对应的app容器内我们cat /etc/hosts 会发现新增的映射记录: ?...总结 That‘s all, 编写一个企业级docker-compose.yml 文件需要对项目业务流程和部署流程有全盘了解,同时必须要具备完备的计算机操作原理和网络原理知识; 当然,当你编写完一个企业级

2.2K20

Docker最全教程——从理论到实战(四)

docker-compose.yml定义服务 关于Compose Compose一个用于定义和运行多Docker应用程序的工具。...值得说明的docker我们无法访问localDb,这时我们建议访问独立的数据库服务或者使用数据库镜像,例如: sql.data: image: mssql-server-linux:latest...了解YAML语言 很多教程并不会讲述这点,但是笔者认为这点也非常重要,因为了解YAML的语法和规范,可以开发调测的过程避免很多错误,也便于我们更好的配置基于YAML语法的文件——比如docker-compose.yml...,而生产环境,则使用轻量级的dockerfile;command,覆盖默认命令; container_name,指定自定义容器名称,不是生成的默认名称。...本文版权归作者和湖南心莱信息科技有限公司共有,欢迎转载,但未经作者同意必须保留此段声明,且文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

99150

Docker折腾记: (2)基于docker-compose构建yapi容器

内 冒号后面需要跟随空格,除了卷或者端口的映射 独立的区域,比如volume,networks这种待映射的值不能以数组的形式,必须为mapping(映射,就是跟随冒号) 直接拼接映射的port和volume...的命令行用起来和docker差不多,compose针对的编排,docker单一容器 创建容器实例并启动 docker-compose up: 这个命令会执行docker-compose.yml,根据规则全部执行完毕...(没有错误的情况下) 若是不想卡在终端一直展示输出,(用-d)守护进程的模式来启动即可 当然,你若是配置文件不是这个名字,需要用-f来指定compose的启动文件 停止且删除容器 docker-compose...(已经废除,无效) ---- 总结 docker-compose可以把多服务器的编排集中式的声明到一个配置文件,免去了我们传入大量的参数到启动命令行; 管理也是非常方便,可以理解为队列管理,可以统一性的处理....大大提高了维护的效率 所以,熟练的使用compose和能自己封装docker容器,会让我们的开发更好的维护, 不管线上还是线下,容器对于多环境的处理很赞的; 比如内部服务器的各种服务,测试环境,开发环境之间的信息隔离

1.3K30
领券