Answers: <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>
  
Answers: CC BY-SA 4.0
Answers: 2023-10-02T15:33:18.287Z
Answers: 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.
Answers: Enderson Menezes
Answers: CC BY-SA 4.0
Answers: 2023-10-02T13:52:31.250Z
Answers: 2023-10-02T15:45:44.203Z
Answers: 2023-10-02T15:45:44.203Z
Answers: Enderson Menezes
Body: <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>
  
Tags: <docker><docker-compose>
Title: What is the syntax error in my docker compose file?
UserDisplayName: Vy Do
ThreadText: # 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.  
  
  ---
  
  