How to override docker-compose project name and network name
Can we override our project and network name inside docker-compose.yml, i.e. without using flag or environment variable?
This can be done in with a parameter of the docker-compose call:
$> docker-compose -p THISISMYPROJECT_AND_NWK_NAME up -d
Unfortunately there is no way to persist it at the moment. (see: https://github.com/docker/compose/issues/745)
That's why I personally prefer adding a bash alias for my projects in ~/.bash_aliases (Debian based Linux) for example:
# project PROJECT shortcuts
alias dc_PROJECT_up='docker-compose -p PROJECT up -d'
alias dc_PROJECT_down='docker-compose -p PROJECT down'
# general docker compose shortcuts
alias dc='docker-compose '
alias dc_up='docker-compose up -d'
alias dc_down='docker-compose down'
So I can call dc_PROJECT_up to start my project with a project name PROJECT. The network name is PROJECT_default then.
Additionally you can setup additional networks with custom names in the docker-composer.yml like this (v. 2.1):
version: '2.1'
...
networks:
mynwk:
driver: bridge
name: mynwk
...
You can check this with the following command:
$> docker network ls
You should get a list of networks including yours and the default one.
you can create an .env file with key=value options such as
COMPOSE_PROJECT_NAME={project name}
you should note that this will only work when the .env file is in the current path