docker
docker-compose

docker-composeで ERROR: In file './docker-compose.yml', service 'ports' must be a mapping not an array. が出た時の対処

おもむろに docker-compose up したらエラーが出て困ったので原因を書いておく

エラー内容

docker-compose up
ERROR: In file './docker-compose.yml', service 'ports' must be a mapping not an array.

原因

docker-compose.ymlのインデントがおかしかった

こんな感じだったんだけども、 privileged 以下のインデントが1個足りてない

間違ったdocker-compose.yml
version: "3.3"
services:
  test-server:
  privileged: true
  build:
    context: .
  env_file: .env
  ports:
    - "8080:80"
  volumes:
    - ./src:/app:cached
  working_dir: /app/
  command: pwd

正しくはこう

正しいdocker-compose.yml
version: "3.3"
services:
  test-server:
    privileged: true
    build:
      context: .
    env_file: .env
    ports:
      - "8080:80"
    volumes:
      - ./src:/app:cached
    working_dir: /app/
    command: pwd