build包含不受支持的选项:'ports'

Gab*_*rie 3 configuration docker docker-compose

试图第一次使用docker-compose,但没有太多运气.我有以下设置:docker-compose版本1.8.0,build f3628c7

  • / home/GabeThermComposer包含docker-compose.yml
  • / home/GabeThermComposer/GabeThermApache包含Dockerfile
  • / home/GabeThermComposer/GabeThermPHPMyAdmin包含Dockerfile
  • / home/GabeThermComposer/GabeThermDB包含Dockerfile和nest-init.sql

当我使用每个子目录中的Dockerfile创建docker镜像时,它都可以正常工作.我希望用docker-compose.yml一次完成所有单独的图像构建.

docker-compose.yml看起来像这样:

version: '2'
services:
  GabeThermDB:
    build:
      context: ./GabeThermDB
      dockerfile: Dockerfile

  GabeThermApache:
    build:
      context: ./GabeThermApache
      dockerfile: Dockerfile
      ports:
       - "80:80"

  GabeThermPHPMyAdmin:
    build:
      context: ./GabeThermPHPMyAdmin
      dockerfile: Dockerfile
      ports:
       - "8080:80"
Run Code Online (Sandbox Code Playgroud)

当试图运行"docker-compose up"时,我收到以下错误:

ERROR: The Compose file './docker-compose.yml' is invalid because:
services.GabeThermPHPMyAdmin.build contains unsupported option: 'ports'
services.GabeThermApache.build contains unsupported option: 'ports'
Run Code Online (Sandbox Code Playgroud)

我不知道这有什么问题.我想我完全像其他例子所表明的那样.顺便说一下,我知道"context:"和"dockerfile:"过度了,但是因为我是新手,我想确定我指的是哪些文件,以防万一我忘了它会自动潜入子目录并运行Dockerfile.

任何帮助表示赞赏.

Joh*_*erz 16

您必须将端口移出构建块.

version: '2'
services:
  GabeThermDB:
    build:
      context: ./GabeThermDB
      dockerfile: Dockerfile

  GabeThermApache:
    build:
      context: ./GabeThermApache
      dockerfile: Dockerfile
    ports:
      - "80:80"

  GabeThermPHPMyAdmin:
    build:
      context: ./GabeThermPHPMyAdmin
      dockerfile: Dockerfile
    ports:
      - "8080:80"
Run Code Online (Sandbox Code Playgroud)