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

问题描述 投票:3回答:2

我正在开发一个php docker应用程序。在尝试使用docker-compose up命令时遇到错误。试图将php应用程序连接到mysql。

我的码头撰写文件: -

 version: '2'
 services:
 web:
 container_name: modeloPHP5.4-Apache
 build: .
 ports:
 — 8889:80

 volumes:
 — ./www:/var/www/html

 links:
 — db

 db:
 container_name: modeloMySQL
 build:
 context: ./
 dockerfile: DockerfileDB
 volumes:
 — /var/lib/mysql

 ports:
 — 3307:3306

 environment:

 MYSQL_ROOT_PASSWORD: password
 MYSQL_USER: user
 MYSQL_PASSWORD: password
 MYSQL_DATABASE: db_test
php docker docker-compose dockerfile
2个回答
4
投票

Docker compose文件是需要缩进的YAML文件,由于你的compose文件中有错误的缩进,Docker认为build是一个服务声明。你有一个类似的问题here,你可以按照Docker文档中的一个例子来检查how the indentation works


1
投票

docker-compose文件使用的是YAML格式,因此必须以yaml格式检查每个空格,行,换行和其他语法是否正确。你可以使用yaml parser来帮助你检查docker-compose文件。

version: '2'

services:
 web:
  container_name: modeloPHP5.4-Apache
  build: .
  ports:
       - 8889:80
  volumes:
         - ./www:/var/www/html
  links:
       - db

 db:
  container_name: modeloMySQL
  build:
  context: ./
  dockerfile: DockerfileDB
  volumes:
         - /var/lib/mysql
  ports:
       - 3307:3306
  environment:
  MYSQL_ROOT_PASSWORD: password
  MYSQL_USER: user
  MYSQL_PASSWORD: password
  MYSQL_DATABASE: db_test
© www.soinside.com 2019 - 2024. All rights reserved.