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

时间:2017-12-20 06:35:30

标签: php docker docker-compose dockerfile

我正在开发一个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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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