skip to Main Content

docker-compose.yml:

version: '3.7'
services:
  db:
    image: mysql:8.0

docker-compose.test.yml:

version: '3.7'
services:
  db:
    ports:
      - 3306:3306

docker-compose config does not show the port. Why?
I’m trying to display the effective compose file, means: the merge result that is also used by docker-compose up.

docker-compose version 1.25.0

2

Answers


  1. By default, docker-compose finds the docker-compose.yml file. The problem you are facing is happening because the port is configured in the other file and DockerCompose doesn’t know anything about it. If you want to check the configuration of the other file, you need to pass it as a parameter:

    docker-compose -f ./path/to/docker-compose.test.yml config
    

    Or you can put the port configuration on the first file like this:

    version: '3.7'
      services:
        db:
          image: mysql:8.0
          ports:
            - 3306:3306
    

    And it should work just fine.

    Login or Signup to reply.
  2. According to the documentation, docker-compose will only automatically find files named docker-compose.yml and docker-compose.override.yml:

    By default, Compose reads two files, a docker-compose.yml and an optional docker-compose.override.yml file. By convention, the docker-compose.yml contains your base configuration. The override file, as its name implies, can contain configuration overrides for existing services or entirely new services.

    If you want to use additional compose files, you need to specify them explicitly using -f <filename>:

    docker-compose up -f docker-compose.yml -f docker-compose.test.yml
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search