「./docker-compose.yml」のバージョンはサポートされていません。間違った作成ファイルバージョンを使用しているため、このエラーが表示される場合があります


90

これが私のdocker-compose.ymlファイルです:

version: '3.1'

services:
  a:
    image: tutum/hello-world
  b:
    image: tutum/hello-world

secrets:
  id: my_password

私が実行する$ docker-compose-upと、これが得られます:

「./docker-compose.yml」のバージョンはサポートされていません。間違った作成ファイルバージョンを使用しているため、このエラーが表示される場合があります。

私のdocker-composeバージョン:

$ docker-compose --version
docker-compose version 1.11.0, build 6de1806

ここで何が問題になっていますか?私のdocker-composeバージョンはdocker-compose.yml仕様のv3.1をサポートするべきではありません(リリースノートによると、サポートしています)?


Dockerのバージョンは何ですか(dockercomposeではありません)?
lvthillo 2017

Dockerバージョン1.13.0、ビルド49bf474
Eric

そのdocker-composeないdocker compose
アブドゥTahiri

@AbdouTahiri CLIはあるdocker-composeが、Docker Compose技術..ですdocs.docker.com/compose
lvthillo

4
バージョンで同じ問題に直面してい"3.6"ます。私の港湾労働者は18.03.0-ce, build 0520e24
RajeevRanjan18年

回答:


89

あなたはすべてを正しくやっていて、それはうまくいくはずです。しかし、docker-compose 1.11.0には、ファイル形式3.1が有効であると認識されないバグがありました。(3.0作品)。

バグ修正を含むdocker-compose(1.11.1)の新しいリリースがすでにあります。

バグの修正

3.1ファイル形式がComposeパーサーによって有効であると認識されなかったバグを修正しました

したがって、ファイル形式3.1を使用する場合は、docker-composeバージョンをアップグレードすることをお勧めします。

現時点でdocker-composeをアップグレードする最も安全な方法は、docker-composeを削除して再インストールすることです。

rm /usr/local/bin/docker-compose

再インストール:

curl -L https://github.com/docker/compose/releases/download/1.11.1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose --version
docker-compose version 1.11.1, build 7c5d5e4

これで、ファイル形式にエラーはなくなりました。(私はあなたの.ymlでテストしませんでした)。

docker-compose up
Starting compose_a_1
Starting compose_b_1

3
ありがとう。何らかの理由で、ubuntu16.04ではcurlcmdが機能しません。次に、こちらの公式Webサイトのガイドに従って、最新のdocker-composeバージョンに更新しました。docs.docker.com/compose/installは、上記とほぼ同じです。ただし、curl cmdでは、「>」が「-o」に変わります。
zhihong 2017年

8
バグはバージョン1.8.0にも影響します。バージョン1.16.1が利用可能であり、Ubuntu16.04で完全に機能しました。上記のパスのバージョンコンポーネントを修正するだけです。引用符が後ろに付いているため、このコメントに明確に貼り付けることはできません:/
chrisinmtown 2017年

理由はわかりcurlませんが、コマンドが実行されません。..許可が拒否されたと言います。
Deepak Sharma 2017年

1
curlコマンドの実行中にエラーが発生した場合は、次のコマンドを試してください: docs.docker.com/compose/install/#install-compose
Deepak Sharma

1
@DeepakSharma rootユーザーとしてcurlコマンドとchmodコマンドを実行する必要があります(またはsudoを使用します)
lvthillo 2017年

50

docker-composeをアップグレードすることで問題を解決しました。

docker-compose inubuntu16.04をアップグレードする手順を以下に示します

ステップ1:

$which docker-compose
/usr/bin/docker-compose

ステップ2:

$sudo rm /usr/bin/docker-compose

ステップ3:

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

ステップ4:

chmod +x /usr/bin/docker-compose

これは、Elementary OS Loki(0.4.1)でうまく機能しました。
J. Afarian

6
ドッキングウィンドウのバージョン頻繁に最新のドッキングウィンドウのバージョンのインストールのためにここを見て変化するためgithub.com/docker/compose/releasesを
DrBと

1
apt-getから取得したバージョンは1.17でしたが、この問題も発生していました(Linux Mint19)。これらの手順のレイアウトと同様に1.24.1をダウンロードしましたが、機能しているようです。ありがとう!
バック

1
削除した後sudo apt install docker-compose、バージョンがすでにあることと、docker-compose updocker-composeがインストールされていないことを教えてください。なぜあなたたちはaptを使用していないのですか?私は今2つの問題を抱えています。
AmbroiseRabier19年

14

ファイルバージョンが3.7で、次のエラーが発生した場合:

ERROR: Version in "./config.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a supported version (e.g "2.2" or "3.3") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

解決策は次のとおりです。-

(1)sudo apt-get remove docker-composeまたはsudo rm /usr/local/bin/docker-compose

(2) sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

(3) sudo chmod +x /usr/local/bin/docker-compose

(4) sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

これで問題が解決することを願っています。


4

linux / ubuntuを使用している場合、これは明らかかもしれませんが、rootとして実行するように注意してください。

docker-compose -v

与える

docker-compose version 1.8.0, build unknown

vs

sudo docker-compose -v 

与える

docker-compose version 1.17.1, build 6d101fb

また、docker -composeとdocker -machineが@lvthilloとして最新であることを確認してください状態てください


これは正しい答えです。私はUbuntuにいるので、作業にはSUDOコマンドを使用する必要がありました
brunoramonalmeida 2018年

sudo docker-compose -vはdocker-composeバージョン1.8.0を提供し、ビルドは不明
Julien

それはsudoでしょうか?
グレントンプソン

-1。須藤は悪いです。別の方法は次のとおり
linux

私はその「悪い」とは言いませんが、いい追加です。答えを自由に編集して、それを追加として含めてください。
グレントンプソン

2

docker-compose --versionlvthilloのソリューションを実装する前に行っていましたが、まだ古いバージョンが表示されていました。bashシェルが保持していたハッシュリストをフラッシュする必要があることが判明しました。 hash -r...それが他の誰かに役立つことを願っています


2

古いバージョンをアンインストールして再インストールしてみてください。

sudo apt remove docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
reboot

印刷する必要があります

docker-compose --version
docker-compose version 1.22.0, build 1719ceb

3
ファイルをダウンロードしたからといって、なぜマシンを再起動するのですか?
SorenBjornstad19年

1

このコマンドを実行して最初にチェックする特定のエラーを見ずにあなたに伝えることはできません

docker build . エラーが発生した場合は、グーグルで検索してください。私の場合は、sudoで試してみたときに許可エラーでした。

それがあなたを助けることを願っています


0

osx 10.12.6sierraの場合

v1.22以降の手順

Dockerを完全にアップグレードしたくないという特定の問題/非互換性がありました。現在、docker17.06.0-ce-mac18でスタックしています。だから私はdocker-composeだけをアップグレードしたかっただけです。

私のステップ:

  • docker-composeの場所を特定します。 which docker-compose
  • docker-composeバージョンを特定します:docker-compose --version=docker-compose version 1.14.0, build c7bdf9e
  • 以前のdocker-composeをバックアップしますか?: mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • と置換する curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • 最新バージョンを確認する必要がある場合は、https://github.com/docker/compose/releasesを確認し、上記のバージョンを最新バージョンに置き換えてください
  • バージョンの確認:docker-compose --version=docker-compose version 1.22.0, build f46880f
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.