Phiên bản trong “./docker-compose.yml” không được hỗ trợ. Bạn có thể gặp lỗi này vì bạn đang sử dụng phiên bản tệp Soạn sai


90

Đây là tệp docker-compost.yml của tôi:

version: '3.1'

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

secrets:
  id: my_password

Nếu tôi chạy, $ docker-compose-uptôi nhận được điều này:

Phiên bản trong "./docker-compose.yml" không được hỗ trợ. Bạn có thể gặp lỗi này vì bạn đang sử dụng phiên bản tệp Soạn sai.

Phiên bản do docker-soạn của tôi:

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

Có gì sai ở đây? Phiên bản docker-compile của tôi không nên hỗ trợ v3.1 của đặc tả docker -omp.yml (theo ghi chú phát hành thì có)?


phiên bản docker của bạn là gì (không phải docker soạn)?
lvthillo

Docker phiên bản 1.13.0, xây dựng 49bf474
Eric

của nó docker-composevà khôngdocker compose
Abdou Tahiri

@AbdouTahiri CLI là docker-composenhưng Docker Composelà công nghệ .. docs.docker.com/compose
lvthillo

4
Đối mặt với cùng một vấn đề với phiên bản "3.6". Docker của tôi là18.03.0-ce, build 0520e24
Rajeev Ranjan

Câu trả lời:


90

Bạn đang làm mọi thứ đúng và nó sẽ hoạt động. Nhưng đã xảy ra lỗi trong docker-compile 1.11.0 khiến định dạng tệp 3.1 không được công nhận là hợp lệ. (3.0 hoạt động).

Đã có một bản phát hành mới của docker -omp (1.11.1) bao gồm bản sửa lỗi:

Sửa lỗi

Đã sửa lỗi trong đó định dạng tệp 3.1 không được trình phân tích cú pháp Soạn nhận dạng là hợp lệ

Vì vậy, tôi khuyên bạn nên nâng cấp phiên bản trình soạn thảo của docker nếu bạn muốn sử dụng định dạng tệp 3.1.

Tại thời điểm này, cách an toàn nhất để nâng cấp docker-comp là xóa nó và cài đặt lại.

rm /usr/local/bin/docker-compose

Cài đặt lại:

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

Bây giờ không có lỗi nữa trên định dạng tệp. (Tôi đã không thử nghiệm với .yml của bạn).

docker-compose up
Starting compose_a_1
Starting compose_b_1

3
Cảm ơn. Vì một số lý do, liều cmd curl của bạn không hoạt động đối với tôi trong ubuntu 16.04. Sau đó, tôi đã cập nhật lên phiên bản docker-soạn mới nhất theo hướng dẫn trong trang web chính thức tại đây. docs.docker.com/compose/install , ít nhiều giống với phần trên. Nhưng trong cmd curl, ">" chuyển thành "-o".
zhihong

8
Lỗi cũng ảnh hưởng đến phiên bản 1.8.0; phiên bản 1.16.1 đã có và hoạt động hoàn hảo trên Ubuntu 16.04. Chỉ cần sửa chữa các thành phần phiên bản của đường dẫn ở trên, không thể dán nó rõ ràng trong nhận xét này do vết back-quote: /
chrisinmtown

Không biết lý do nhưng curllệnh không thực thi. .. cho biết sự cho phép bị từ chối.
Deepak Sharma

1
Những người đang phải đối mặt lỗi trong chạy curllệnh, hãy thử này: docs.docker.com/compose/install/#install-compose
Deepak Sharma

1
@DeepakSharma Bạn phải thực hiện curl và lệnh chmod với người dùng root (hoặc sử dụng sudo)
lvthillo

51

Tôi đã giải quyết vấn đề bằng cách nâng cấp docker-soạn.

Đã bỏ qua các bước dưới đây để nâng cấp trình soạn nhạc trong ubuntu16.04

bước 1:

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

bước 2:

$sudo rm /usr/bin/docker-compose

bước 3:

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

bước 4:

chmod +x /usr/bin/docker-compose

Điều này hoạt động tốt với tôi trên Elementary OS Loki (0.4.1).
J. Afarian

6
Kể từ khi phiên bản của Docker những thay đổi thường xuyên trông vào đây để cài đặt phiên bản mới nhất Docker github.com/docker/compose/releases
DRB

1
Phiên bản tôi nhận được từ apt-get là 1.17, nó cũng đang gặp sự cố này (Linux Mint 19). Tôi đã tải xuống 1.24.1 tương tự như cách các bước này sắp xếp, dường như đang hoạt động. Cảm ơn!
Will Buck

1
Sau khi xóa nó, hãy sudo apt install docker-composecho tôi biết tôi đã có phiên bản và docker-compose upcho tôi biết tôi chưa cài đặt docker-comp. Tại sao các bạn không sử dụng apt? Tôi có hai vấn đề bây giờ.
Ambroise Rabier

15

Nếu phiên bản tệp của bạn là 3.7 và bạn gặp lỗi sau:

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.

Đây là giải pháp: -

(1) sudo apt-get remove docker-composeHOẶCsudo 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

Tôi hy vọng điều này giải quyết được vấn đề.


4

Nếu sử dụng linux / ubuntu , Điều này có thể hiển nhiên nhưng hãy cẩn thận khi bạn chạy dưới dạng root, ví dụ:

docker-compose -v

Cho

docker-compose version 1.8.0, build unknown

vs

sudo docker-compose -v 

Cho

docker-compose version 1.17.1, build 6d101fb

Ngoài ra, hãy đảm bảo docker-soạn và docker-machine được cập nhật như trạng thái @lvthillo


Đây phải là câu trả lời đúng. Tôi đang trong Ubuntu, tôi đã phải sử dụng lệnh sudo để làm việc
brunoramonalmeida

sudo docker-compac -v cung cấp cho tôi docker -omp phiên bản 1.8.0, bản dựng không xác định
Julien

Đó là với sudo?
Glen Thompson

-1. Sudo thật tệ. Đây là một giải pháp thay thế: docs.docker.com/install/linux/linux-postinstall/…
Ligemer

Tốt thêm, mặc dù tôi sẽ không nói "xấu" của nó. Vui lòng chỉnh sửa câu trả lời để thêm vào đó.
Glen Thompson

2

Tôi đã làm docker-compose --versiontrước khi triển khai giải pháp của lvthillo và tôi vẫn thấy các phiên bản lỗi thời hiển thị. Hóa ra tôi cần xóa danh sách băm mà shell bash của tôi đang giữ. hash -r... hy vọng điều đó có ích cho người khác


2

thử gỡ cài đặt phiên bản cũ và cài đặt lại.

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

nên in ra

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

3
Tại sao khởi động lại máy chỉ vì bạn đã tải xuống một tập tin?
Soren Bjornstad

1

Chúng tôi không thể cho bạn biết nếu không xem lỗi cụ thể trước tiên hãy kiểm tra nó bằng cách chạy lệnh này

docker build . Khi bạn gặp lỗi thì hãy tìm kiếm nó trong google trong trường hợp của tôi, đó là lỗi quyền khi tôi thử với sudo nó đã hoạt động.

Hy vọng nó sẽ giúp ích cho bạn


0

Trên osx 10.12.6 sierra

Các bước cho v1.22 trở lên

Tôi đã gặp sự cố / không tương thích cụ thể mà tôi không muốn nâng cấp hoàn toàn docker. Tôi hiện đang bị mắc kẹt trên docker 17.06.0-ce-mac18. Vì vậy, tôi chỉ muốn nâng cấp docker-soạn và không có gì khác.

Các bước của tôi:

  • Xác định vị trí của docker-soạn: which docker-compose
  • Xác định phiên bản docker-soạn: docker-compose --version=docker-compose version 1.14.0, build c7bdf9e
  • sao lưu docker-soạn trước ?: mv /usr/local/bin/docker-compose /usr/local/bin/docker-compose-bak
  • thay thế bằng curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
  • nếu bạn cần xác định phiên bản mới nhất, chỉ cần kiểm tra https://github.com/docker/compose/releases và thay thế phiên bản ở trên bằng phiên bản mới nhất.
  • xác minh phiên bản: docker-compose --version=docker-compose version 1.22.0, build f46880f
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.