Docker: версия «4.7.0» в «.\docker-compose.yml» недействительна

Поскольку Docker установил новое обновление для 4.7.0, я получаю сообщение об ошибке выше. Это мой docker-compose.yml:

version: "20.10.14"

services:
  postgres:
    environment:
      POSTGRES_PASSWORD: xxxx
      POSTGRES_DB: marketplace
      POSTGRES_USER: postgres
    build:
      dockerfile: ./dbdockerfile/Dockerfile
  football_marketplace:
    build:
      dockerfile: Dockerfile
    ports:
      - 3300:3300
    depends_on:
      - "postgres"
  reactjs:
    build:
      dockerfile: ./football_marketplace-app/frontend/Dockerfile
    ports:
      - 3000:3000

Я обновил докер до 4.7.0 и попробовал несколько номеров версий в качестве замены. Я пробовал 20.10.14, это клиентская версия. Я пробовал 4.7.0 и пару других номеров.

Это вывод моей версии докера:

Client:
 Cloud integration: v1.0.23
 Version:           20.10.14
 API version:       1.41
 Go version:        go1.16.15
 Git commit:        a224086
 Built:             Thu Mar 24 01:53:11 2022
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Desktop 4.7.0 (77141)
 Engine:
  Version:          20.10.14
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.15
  Git commit:       87a90dc
  Built:            Thu Mar 24 01:46:14 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.11
  GitCommit:        3df54a852345ae127d1fa3092b95168e4a88e2f8
 runc:
  Version:          1.0.3
  GitCommit:        v1.0.3-0-gf46b6ba
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Я читал здесь другие темы об этой ошибке, но большинство из них предполагают, что что-то пошло не так с docker-compose.override.yml, который я вообще не использую. Или что версия докера не соответствует номеру версии в docker-compose.yml, а моя соответствует.

Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
22
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Версия в файле компоновки 2.x, 3.x или в последней спецификации компоновки полностью удалена:

https://docs.docker.com/compose/compose-file/#версия-элемент-верхнего уровня

Если вы хотите поддерживать устаревшие среды (многие из них все еще будут существовать, поскольку compose-spec является относительно новым), используйте 2.4, который был последним 2.x. Версии 3.x были ориентированы на поддержку режима Swarm и удалили некоторые функции, такие как build и depends_on, которые не работают в режиме Swarm.

Ждать. То есть вы говорите, что тег «версия» больше не нужен?

swisstackle 10.04.2022 03:15

Более новые версии docker-compose интерпретируют файл без поля версии как слияние версий 2.x и 3.x вместе с функциями, добавленными в compose-spec. Но обратите внимание, что более старые версии docker-compose будут интерпретировать это как версию 1.x, которая имеет совершенно другой формат. Самый портативный ответ, вероятно, 2.4.

BMitch 10.04.2022 15:49

Я просто удалил часть версии. Затем мне пришлось добавить «контекст» в сборку, и тогда это сработало. Странно, что раньше он работал без контекста, потому что в документах докера конкретно упоминается, что контекст необходим.

swisstackle 10.04.2022 16:47

Другие вопросы по теме