и подставить в CMD докерфайла? Пытался использовать ARG, но через CMD echo порт не выдает.
Зачем?
Ну чтобы порт в докерфайле не светить
Я заметил что выносят порты вместе с конфиденциальными данными в .env файл. Вот в компоузе могу из .env файла подставить порт и данные какие-то. В докерфайле при старте сервера хотел тоже самое с портом сделать. Это глупо, так не надо делать?
Номер порта используют для указания, куда именно подключаться, потому что это приложение (например, СУБД) может быть запущено на одном хосте в нескольких экземплярах, каждый на своем порту, или например на нестандартном. Менять же порт, который слушает приложение внутри контейнера, весьма странное занятие - приложение в контейнере одно, порт больше занять некому. Так что я не вижу в этом никакого смысла
Я про такой формат говорю EXPOSE ${APP_PORT} CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "${APP_PORT}"] И вот чтобы при запуске подставлялись значения из .env файла
В expose значение должно быть известно на этапе сборки образа. CMD же выполняется при запуске, там это работатать будет
Тогда получается, что нет смысла в том, чтобы дергать из .env файла. Лучше явно указать порты?
Спасибо!
Обсуждают сегодня