<p>By default, some IDEs, such as Visual Code, will look for a standard Schema of the file type &quot;docker-compose.yaml&quot; or &quot;docker-compose.yml&quot;.</p>
<p><a href="https://github.com/docker/cli/tree/master/cli/compose/schema/data" rel="nofollow noreferrer">Example</a></p>
<p>For example, I have the most up-to-date versions of the linter plugins, and I haven't had any problems with the file. I would recommend that you update your plugins or IDE.</p>
<p><a href="https://i.sstatic.net/UsdDk.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/UsdDk.png" alt="" /></a></p>

CC BY-SA 4.0
2023-10-02T15:33:18.287Z
I can't test with your IDE, can you see somewhere where it is comparing the validation file?
For example in my case, it is written very small in gray, and I can open it and see the json schema that was used.
Enderson Menezes
CC BY-SA 4.0
2023-10-02T13:52:31.250Z
2023-10-02T15:45:44.203Z
2023-10-02T15:45:44.203Z
Enderson Menezes
<p>I copied authoritative content at <a href="https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml" rel="nofollow noreferrer">https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml</a></p>
<pre><code>version: '3.9'

x-kong-config: &amp;kong-env
  KONG_DATABASE: ${KONG_DATABASE:-off}
  KONG_PG_DATABASE: ${KONG_PG_DATABASE:-kong}
  KONG_PG_HOST: db
  KONG_PG_USER: ${KONG_PG_USER:-kong}
  KONG_PG_PASSWORD_FILE: /run/secrets/kong_postgres_password

volumes:
  kong_data: {}
  kong_prefix_vol:
    driver_opts:
     type: tmpfs
     device: tmpfs
  kong_tmp_vol:
    driver_opts:
     type: tmpfs
     device: tmpfs

networks:
  kong-net:
    external: false

services:
  kong-migrations:
    image: &quot;${KONG_DOCKER_TAG:-kong:latest}&quot;
    command: kong migrations bootstrap
    profiles: [&quot;database&quot;]
    depends_on:
      - db
    environment:
      &lt;&lt;: *kong-env
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    restart: on-failure

  kong-migrations-up:
    image: &quot;${KONG_DOCKER_TAG:-kong:latest}&quot;
    command: kong migrations up &amp;&amp; kong migrations finish
    profiles: [&quot;database&quot;]
    depends_on:
      - db
    environment:
      &lt;&lt;: *kong-env
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    restart: on-failure

  kong:
    image: &quot;${KONG_DOCKER_TAG:-kong:latest}&quot;
    user: &quot;${KONG_USER:-kong}&quot;
    environment:
      &lt;&lt;: *kong-env
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_PROXY_LISTEN: &quot;${KONG_PROXY_LISTEN:-0.0.0.0:8000}&quot;
      KONG_ADMIN_LISTEN: &quot;${KONG_ADMIN_LISTEN:-0.0.0.0:8001}&quot;
      KONG_ADMIN_GUI_LISTEN: &quot;${KONG_ADMIN_GUI_LISTEN:-0.0.0.0:8002}&quot;
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_PREFIX: ${KONG_PREFIX:-/var/run/kong}
      KONG_DECLARATIVE_CONFIG: &quot;/opt/kong/kong.yaml&quot;
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    ports:
      # The following two environment variables default to an insecure value (0.0.0.0)
      # according to the CIS Security test.
      - &quot;${KONG_INBOUND_PROXY_LISTEN:-0.0.0.0}:8000:8000/tcp&quot;
      - &quot;${KONG_INBOUND_SSL_PROXY_LISTEN:-0.0.0.0}:8443:8443/tcp&quot;
      # Making them mandatory but undefined, like so would be backwards-breaking:
      # - &quot;${KONG_INBOUND_PROXY_LISTEN?Missing inbound proxy host}:8000:8000/tcp&quot;
      # - &quot;${KONG_INBOUND_SSL_PROXY_LISTEN?Missing inbound proxy ssl host}:8443:8443/tcp&quot;
      # Alternative is deactivating check 5.13 in the security bench, if we consider Kong's own config to be enough security here

      - &quot;127.0.0.1:8001:8001/tcp&quot;
      - &quot;127.0.0.1:8444:8444/tcp&quot;
      - &quot;127.0.0.1:8002:8002/tcp&quot;
    healthcheck:
      test: [&quot;CMD&quot;, &quot;kong&quot;, &quot;health&quot;]
      interval: 10s
      timeout: 10s
      retries: 10
    restart: on-failure:5
    read_only: true
    volumes:
      - kong_prefix_vol:${KONG_PREFIX:-/var/run/kong}
      - kong_tmp_vol:/tmp
      - ./config:/opt/kong
    security_opt:
      - no-new-privileges

  db:
    image: postgres:9.5
    profiles: [&quot;database&quot;]
    environment:
      POSTGRES_DB: ${KONG_PG_DATABASE:-kong}
      POSTGRES_USER: ${KONG_PG_USER:-kong}
      POSTGRES_PASSWORD_FILE: /run/secrets/kong_postgres_password
    secrets:
      - kong_postgres_password
    healthcheck:
      test: [&quot;CMD&quot;, &quot;pg_isready&quot;, &quot;-U&quot;, &quot;${KONG_PG_USER:-kong}&quot;]
      interval: 30s
      timeout: 30s
      retries: 3
    restart: on-failure
    stdin_open: true
    tty: true
    networks:
      - kong-net
    volumes:
      - kong_data:/var/lib/postgresql/data

secrets:
  kong_postgres_password:
    file: ./POSTGRES_PASSWORD
</code></pre>
<p>But I get a syntax error in my IDE (which is IntelliJ IDEA 2023.x, latest stable version). What is my syntax error in my docker-compose file?</p>

<docker><docker-compose>
What is the syntax error in my docker compose file?
Vy Do
# What is the syntax error in my docker compose file?

(Asked by: username_0 on 2023-10-02)

I copied authoritative content at https://github.com/Kong/docker-kong/blob/master/compose/docker-compose.yml
version: '3.9'

x-kong-config: &kong-env
  KONG_DATABASE: ${KONG_DATABASE:-off}
  KONG_PG_DATABASE: ${KONG_PG_DATABASE:-kong}
  KONG_PG_HOST: db
  KONG_PG_USER: ${KONG_PG_USER:-kong}
  KONG_PG_PASSWORD_FILE: /run/secrets/kong_postgres_password

volumes:
  kong_data: {}
  kong_prefix_vol:
    driver_opts:
     type: tmpfs
     device: tmpfs
  kong_tmp_vol:
    driver_opts:
     type: tmpfs
     device: tmpfs

networks:
  kong-net:
    external: false

services:
  kong-migrations:
    image: "${KONG_DOCKER_TAG:-kong:latest}"
    command: kong migrations bootstrap
    profiles: ["database"]
    depends_on:
      - db
    environment:
      <<: *kong-env
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    restart: on-failure

  kong-migrations-up:
    image: "${KONG_DOCKER_TAG:-kong:latest}"
    command: kong migrations up && kong migrations finish
    profiles: ["database"]
    depends_on:
      - db
    environment:
      <<: *kong-env
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    restart: on-failure

  kong:
    image: "${KONG_DOCKER_TAG:-kong:latest}"
    user: "${KONG_USER:-kong}"
    environment:
      <<: *kong-env
      KONG_ADMIN_ACCESS_LOG: /dev/stdout
      KONG_ADMIN_ERROR_LOG: /dev/stderr
      KONG_PROXY_LISTEN: "${KONG_PROXY_LISTEN:-0.0.0.0:8000}"
      KONG_ADMIN_LISTEN: "${KONG_ADMIN_LISTEN:-0.0.0.0:8001}"
      KONG_ADMIN_GUI_LISTEN: "${KONG_ADMIN_GUI_LISTEN:-0.0.0.0:8002}"
      KONG_PROXY_ACCESS_LOG: /dev/stdout
      KONG_PROXY_ERROR_LOG: /dev/stderr
      KONG_PREFIX: ${KONG_PREFIX:-/var/run/kong}
      KONG_DECLARATIVE_CONFIG: "/opt/kong/kong.yaml"
    secrets:
      - kong_postgres_password
    networks:
      - kong-net
    ports:
      # The following two environment variables default to an insecure value (0.0.0.0)
      # according to the CIS Security test.
      - "${KONG_INBOUND_PROXY_LISTEN:-0.0.0.0}:8000:8000/tcp"
      - "${KONG_INBOUND_SSL_PROXY_LISTEN:-0.0.0.0}:8443:8443/tcp"
      # Making them mandatory but undefined, like so would be backwards-breaking:
      # - "${KONG_INBOUND_PROXY_LISTEN?Missing inbound proxy host}:8000:8000/tcp"
      # - "${KONG_INBOUND_SSL_PROXY_LISTEN?Missing inbound proxy ssl host}:8443:8443/tcp"
      # Alternative is deactivating check 5.13 in the security bench, if we consider Kong's own config to be enough security here

      - "127.0.0.1:8001:8001/tcp"
      - "127.0.0.1:8444:8444/tcp"
      - "127.0.0.1:8002:8002/tcp"
    healthcheck:
      test: ["CMD", "kong", "health"]
      interval: 10s
      timeout: 10s
      retries: 10
    restart: on-failure:5
    read_only: true
    volumes:
      - kong_prefix_vol:${KONG_PREFIX:-/var/run/kong}
      - kong_tmp_vol:/tmp
      - ./config:/opt/kong
    security_opt:
      - no-new-privileges

  db:
    image: postgres:9.5
    profiles: ["database"]
    environment:
      POSTGRES_DB: ${KONG_PG_DATABASE:-kong}
      POSTGRES_USER: ${KONG_PG_USER:-kong}
      POSTGRES_PASSWORD_FILE: /run/secrets/kong_postgres_password
    secrets:
      - kong_postgres_password
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "${KONG_PG_USER:-kong}"]
      interval: 30s
      timeout: 30s
      retries: 3
    restart: on-failure
    stdin_open: true
    tty: true
    networks:
      - kong-net
    volumes:
      - kong_data:/var/lib/postgresql/data

secrets:
  kong_postgres_password:
    file: ./POSTGRES_PASSWORD

But I get a syntax error in my IDE (which is IntelliJ IDEA 2023.x, latest stable version). What is my syntax error in my docker-compose file?

**Tags:** docker, docker-compose


---

## 1 answers

### Answer by username_1 on 2023-10-02. Score: 1

By default, some IDEs, such as Visual Code, will look for a standard Schema of the file type "docker-compose.yaml" or "docker-compose.yml".

[Example](https://github.com/docker/cli/tree/master/cli/compose/schema/data)

For example, I have the most up-to-date versions of the linter plugins, and I haven't had any problems with the file. I would recommend that you update your plugins or IDE.

[![](https://i.sstatic.net/UsdDk.png)](https://i.sstatic.net/UsdDk.png)

> **Comments:**
> **username_1**: I can't test with your IDE, can you see somewhere where it is comparing the validation file? For example in my case, it is written very small in gray, and I can open it and see the json schema that was used.  

---

