[docker-compose] “./docker-compose.yml”의 버전은 지원되지 않습니다. 잘못된 작성 파일 버전을 사용하고 있기 때문에이 오류가 표시 될 수 있습니다.

다음은 내 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을 지원해야하지 않습니까 ( 릴리스 노트 에 따르면 지원 )?



답변

당신은 모든 것을 올바르게하고 있으며 작동해야합니다. 그러나 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


답변

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


답변

파일 버전이 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

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


답변

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


답변

내가했던 docker-compose --versionlvthillo의 솔루션을 구현하기 전에 나는 아직도 오래된 버전이 게재 얻고 있었다. 내 bash 쉘이 보유하고있는 해시 목록을 플러시해야한다는 것이 밝혀졌습니다. hash -r… 다른 사람에게 유용하기를 바랍니다.


답변

이전 버전을 제거하고 다시 설치하십시오.

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


답변

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

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

도움이되기를 바랍니다.