У меня есть файл docker-compose.yml, упрощенный ниже
slim-first:
image: slim-image
expose:
- 9191
slim-second:
image: slim-image
expose:
- 9192
Образ slim-image
получен из Dockerfile
, который запускает службу (используя среду PHP Slim) с помощью следующей команды
#File: Dockerfile
# ...
CMD ["/usr/local/bin/php", "-S", "0.0.0.0:9191", "-t", "/slim/public"]
Возможно, вы уже заметили проблему - мне нужно предоставить встроенному веб-серверу PHP порт. Тем не менее, я пытаюсь запустить две службы - каждая из которых доступна на своем порте.
Мой вопрос: есть ли в моем Dockerfile
способ доступа к значениям порта expose
d из моего файла docker-composer.yml
?
Или это решение дублировать номер порта в переменную окружения, которую может видеть Dockerfile
.
Или есть какой-то третий путь, который позволил бы мне настроить значение порта в одном и только одном месте?
Чтобы уточнить, я знаю, что мог бы сделать что-то вроде этого
slim-second:
image: slim-image
expose:
- 9192
args:
- PORT=9192
...
ARG PORT=9191
CMD ["/usr/local/bin/php", "-S", "0.0.0.0:$PORT", "-t", "/slim/public"]
но я не хочу повторять порт дважды в моем файле docker-compose.yml.