"./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"의 버전은 지원되지 않습니다. 잘못된 Compose 파일 버전을 사용하고 있기 때문에이 오류가 표시 될 수 있습니다.

내 도커 작성 버전 :

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

여기서 뭐가 잘못 됐나요? 내 docker-compose 버전이 docker-compose.yml 사양의 v3.1을 지원해야하지 않습니까 ( 릴리스 노트 에 따르면 지원 )?


도커의 버전은 무엇입니까 (도커 작성 아님)?
lvthillo

도커 버전 1.13.0, 빌드 49bf474
에릭

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
라지브 란잔

답변:


90

당신은 모든 것을 올바르게하고 있으며 작동해야합니다. 그러나 docker-compose 1.11.0에 파일 형식 3.1을 유효한 것으로 인식하지 못하는 버그 가있었습니다 . (3.0 작품).

버그 수정을 포함하는 docker-compose (1.11.1)의 새 릴리스가 이미 있습니다.

버그 수정

3.1 파일 형식이 Compose 파서에서 유효한 것으로 인식되지 않는 버그를 수정했습니다.

따라서 3.1 파일 형식을 사용하려면 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
감사. 어떤 이유로, 당신의 curl cmd는 우분투 16.04에서 나를 위해 작동하지 않습니다. 그런 다음 여기 공식 웹 사이트의 가이드에 따라 최신 docker-compose 버전으로 업데이트했습니다. docs.docker.com/compose/install . 위와 거의 동일합니다. 그러나 curl cmd에서 ">"는 "-o"로 변경됩니다.
zhihong

8
버그는 버전 1.8.0에도 영향을 미칩니다. 버전 1.16.1은 사용 가능하며 Ubuntu 16.04에서 완벽하게 작동합니다. 그냥 때문에 백 인용 부호로이 댓글에 명확하게 붙여 넣을 수 없습니다 위의 경로의 버전 구성 요소를 수정 : /
chrisinmtown

이유를 모르지만 curl명령이 실행되지 않습니다. .. 권한이 거부되었다고 말합니다.
Deepak Sharma

1
curl명령 실행에 오류가있는 사람들은 다음을 시도하십시오. docs.docker.com/compose/install/#install-compose
Deepak Sharma

1
@DeepakSharma 루트 사용자 (또는 sudo 사용)로 curl 및 chmod 명령을 실행해야합니다.
lvthillo

51

docker-compose를 업그레이드하여 문제를 해결했습니다.

ubuntu16.04에서 docker-compose를 업그레이드하는 단계는 다음과 같습니다.

1 단계:

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

2 단계:

$sudo rm /usr/bin/docker-compose

step3 :

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 Mint 19). 1.24.1을 다운로드 한 것과 비슷하게이 단계가 작동하는 것처럼 보입니다. 감사!
Will Buck

1
삭제 한 후 sudo apt install docker-compose이미 버전 docker-compose up이 있고 Docker-compose가 설치되어 있지 않다고 알려주십시오. 왜 apt를 사용하지 않습니까? 이제 두 가지 문제가 있습니다.
Ambroise Rabier

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

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

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

문제가 해결되기를 바랍니다.


4

linux / ubuntu를 사용하는 경우 이것은 분명 할 수 있지만 루트로 실행하는 데주의하십시오.

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 상태 로 최신 상태 인지 확인하십시오.


이것이 정답이되어야합니다. 우분투에서, 내가 작업을위한 SUDO 명령을 사용했다 해요
brunoramonalmeida

sudo docker-compose -v 나에게 docker-compose 버전 1.8.0 제공, 알 수 없음 빌드
Julien

그것은 sudo입니까?
Glen Thompson

-1. Sudo는 나쁘다. 대안은 다음과 같습니다. docs.docker.com/install/linux/linux-postinstall/…
Ligemer

내가 그것의 "나쁜"이라고 말하지 않더라도 좋은 추가. 추가로 포함하도록 대답을 편집하십시오.
Glen Thompson

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
파일을 다운로드했기 때문에 시스템을 재부팅하는 이유는 무엇입니까?
Soren Bjornstad

1

이 명령을 실행하여 특정 오류를 먼저 확인하지 않고는 알 수 없습니다.

docker build . 오류가 발생하면 Google에서 검색하면 sudo로 시도했을 때 권한 오류가 발생했습니다.

도움이되기를 바랍니다.


0

OSX 10.12.6 Sierra에서

v1.22 이상의 단계

Docker를 완전히 업그레이드하고 싶지 않은 특정 문제 / 비 호환성이있었습니다. 현재 docker 17.06.0-ce-mac18에 붙어 있습니다. 그래서 나는 단지 docker-compose를 업그레이드하고 싶었습니다.

내 단계 :

  • docker-compose의 위치 식별 : which 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.