Docker compose volume definition using environment variable

737 Views Asked by At

I'm running a containerized Milvus Standalone database (Milvus) and I'm trying to find the location of items added to the database. In the docker-compose.yml file, the volume location is defined as follows:

    volumes:
      - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/etcd:/etcd

Checking my docker server, I do not find an environment variable named DOCKER_VOLUME_DIRECTORY. What does this definition mean? Also, what does the

:-.

part mean?

1

There are 1 best solutions below

1
On BEST ANSWER

It is using Shell Parameter expansion:

${parameter:-word}

If parameter is unset or null, then word is used as a default value.

In this case, as DOCKER_VOLUME_DIRECTORY is not set, the default value of . (the current directory) is used.

$ echo ${DOCKER_VOLUME_DIRECTORY:-.}
.

So the volume will effectively be:

volumes:
  - ./volumes/etcd:/etcd