Кавычки на портах docker-compose.yml имеют какое-либо значение?

#javascript #yaml

#docker #docker-compose

Вопрос:

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

  • С кавычками
 ports:
  - "80:80"
  - "443:443"
 
  • Без кавычек
 ports:
  - 80:80
  - 443:443
 

Я не вижу разницы, когда запускаю его

Комментарии:

1. Спецификация YAML включена yaml.org . Иногда строки с двоеточиями могут выглядеть как key: value сопоставления, а строки цифр могут выглядеть как числа, когда они должны быть строками, поэтому я привык их цитировать.

2. Просто возникла проблема, когда я хотел выставить постфиксный порт 25 в docker-compose. "25:25" работал, тогда 25:25 как не работал. Так что, я думаю, всегда полезно использовать кавычки

3. Меня это тоже задело. 21:21 создал сопоставление 0.0.0.0:32769->1281/tcp . Тогда ладно !?

4. это также происходит с официальным контейнером postgres: 13.2 (также 13). Если вы используете 5433: 5432, он не будет отображать порт 5433, и вам будет отказано в подключении. Как только вы измените его на «5433: 5432», он будет работать

Ответ №1:

Примечание из ссылки на файл Docker Compose версии 3:

При сопоставлении портов в формате HOST:CONTAINER могут возникнуть ошибочные результаты при использовании порта контейнера ниже 60, поскольку YAML анализирует числа в формате xx:yy в качестве базового значения 60. По этой причине мы рекомендуем всегда явно указывать ваши сопоставления портов в виде строк.

https://docs.docker.com/compose/compose-file/compose-file-v3/#ports