Если синтаксис, который вы показываете, не работает, то Docker Compose 3.7 не может сделать это (но это, вероятно, довольно простой запрос на добавление GitHub, чтобы добавить его). (Также обратите внимание, что этот синтаксис задокументирован в документации docker run
; это просто проблема синтаксического анализа в Compose.)
Лучшим обходным решением, вероятно, будетвыбрать "публичный" порт самостоятельно. Если вы пытаетесь адаптировать рабочий процесс, построенный на docker run -p 127.0.0.1::60000
или даже docker run -P
, это будет сложнее.
Фактический исходный код Docker Compose находится в GitHub docker/compose
репозиторий. Это включает в себя схему конфигурации для файла docker-compose.yml
и метод ServicePort.parse
для обработки содержимого ports:
. Похоже, что метод parse
для строки не поддерживает отсутствующий опубликованный порт (я не уверен почему), и схема не допускает опцию external_ip:
для длинного синтаксиса .