Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

docker-compose : Unsupported config option for services service: 'web'

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.

like image 914
DarcliGht Avatar asked Apr 19 '16 17:04

DarcliGht


People also ask

How do I fix Docker compose yml is unsupported?

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 .

Where is the Docker compose config file?

The default path for a Compose file is ./docker-compose.yml .

What is Docker compose config?

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.

What is the difference between Docker compose and Docker compose?

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.


4 Answers

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.

like image 96
larsks Avatar answered Oct 24 '22 14:10

larsks


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:

  1. Version 1, the legacy format. This is specified by omitting a version key at the root of the YAML.
  2. Version 2.x. This is specified with a version: '2' or version: '2.1', etc., entry at the root of the YAML.
  3. 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.
like image 25
ospider Avatar answered Oct 24 '22 14:10

ospider


In my case i had used a wrong indentation. Recheck indentation of your docker-compose file to ensure it is correct

like image 2
Muteshi Avatar answered Oct 24 '22 13:10

Muteshi


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
like image 1
Brijesh Kalkani Avatar answered Oct 24 '22 14:10

Brijesh Kalkani