I am getting a strange error in my docker-compose.yml file.
I have prepared a docker-compose file for the stack punjab connection manager, ejabberd and mysql.
Below is the docker-compose.yml file
version: '2'
services:
punjab:
image:punjab
ports
- 5280:5280
links
- ejabbberd:ejabberd
ejabberd:
image: ejabberd
depends-on:
- mysql
links:
- mysql:mysql
mysql:
image:mysql
When I run the command docker-compose up from the command line and from the same directory where I have the docker-compose.yml file, I get the following error.
ERROR: In file './docker-compose.yml', service 'punjab' must be a mapping not a string.
I parsed the yml file using yamllint as well and the file is correctly formatted.
Although in theory the file format may look correct, there are some things that are wrong.
They are:
Use depends_on
instead of depends-on
because that is the correct syntax.
For best practice, use a blank space before informing the image like: image: punjab
.
On ports
and links
at punjab service, you forget the colon :
The images ejabberd
and punjab
do not exist on Docker Hub so they must exist in your local repository.
This is an example to use a docker-compose.yml
:
version: '2'
services:
punjab:
image: punjab
ports:
- "5280:5280"
links:
- ejabberd
ejabberd:
image: ejabberd
depends_on:
- mysql
links:
- mysql
mysql:
image: mysql