I am going through the Getting Started with Docker Compose page.
In Step 3, I made a docker-compose.yml
file as described:
version: '2'
services:
web:
build: .
ports:
- "5000:5000"
volumes:
- .:/code
depends_on:
- redis
redis:
image: redis
But when I run:
$ docker-compose up
I get following error:
Unsupported config option for services service: 'web'
What am I doing wrong? I was not able to figure out what is going on.
yml" is unsupported. You can fix this issue by upgrading docker-compose to the newest version (just download the new script from the install section). Make sure you uninstall the any previous apt package before coping the script via curl sudo apt remove docker-compose .
The default path for a Compose file is ./docker-compose.yml .
Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a YAML file to configure your application's services. Then, with a single command, you create and start all the services from your configuration.
The key difference between docker run versus docker-compose is that docker run is entirely command line based, while docker-compose reads configuration data from a YAML file. The second major difference is that docker run can only start one container at a time, while docker-compose will configure and run multiple.
Support for the version 2 compose file format was introduced in docker-compose version 1.6, released around February of this year.
You're using 1.3.3, from July 2015.
You need to upgrade to a more recent version to use the version 2 format configuration files.
Since this is the first result on Googling "docker-compose Unsupported config option for services", I would like to add that the most common reason as of 2020 is missing of version: "3"
.
Just add version: "3"
to the start of your docker-compose.yml
.
From the docs:
There are currently three versions of the Compose file format:
- Version 1, the legacy format. This is specified by omitting a version key at the root of the YAML.
- Version 2.x. This is specified with a version: '2' or version: '2.1', etc., entry at the root of the YAML.
- Version 3.x, the latest and recommended version, designed to be cross-compatible between Compose and the Docker Engine’s swarm mode. This is specified with a version: '3' or version: '3.1', etc., entry at the root of the YAML.
In my case i had used a wrong indentation. Recheck indentation of your docker-compose
file to ensure it is correct
I would recommend upgrading your docker-compose version, At the moment the safest way to upgrade docker-compose is by deleting it and reinstalling it.
rm /usr/local/bin/docker-compose
Reinstall:
Update the apt package index, and install the latest version of Docker Compose:
sudo apt-get update
sudo apt-get install docker-compose-plugin
Alternatively, to install a specific version of Compose CLI plugin:
a. List the versions available in your repo:
apt-cache madison docker-compose-plugin
b. From the list obtained use the version string you can in the second column to specify the version you wish to install. c. Install the selected version:
sudo apt-get install docker-compose-plugin=<VERSION_STRING>
where <VERSION_STRING> is, for example,2.3.3~ubuntu-focal.
And verify that Docker Compose is installed correctly by checking the version.
docker compose version
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With