Docker compose error "In file './docker-compose.yml', service 'punjab' must be a mapping not a string."
Although in theory the file format may look correct, there are some things that are wrong.
They are:
Use
depends_on
instead ofdepends-on
because that is the correct syntax.For best practice, use a blank space before informing the image like:
image: punjab
.On
ports
andlinks
at punjab service, you forget the colon:
The images
ejabberd
andpunjab
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
Vaibhav Ranglani
Updated on July 09, 2022Comments
-
Vaibhav Ranglani almost 2 years
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.
-
Vaibhav Ranglani about 8 yearsThanks @Caue... depends_on was the issue and the missing semi-colon: ejabberd and punjab are images on my local docker machine.