Вам не нужно делать этот параметр настраиваемым. Выберите номер порта - каким бы ни был порт «по умолчанию», например, для непривилегированной службы HTTP вашей языковой платформы, - и жестко запрограммируйте его в Dockerfile. Если оператор хочет выбрать другой порт для publish , он будет знать, каким должен быть второй номер опции docker run -p
.
# Dockerfile
...
EXPOSE 8000
CMD ["myserver", "-addr=0.0.0.0:8000"]
# The second port number 8000 is a fixed property of the image
# The operator can pick any number for the published port
docker run -p 3333:8000 ...
Вам следуетбыть в состоянии повторно запустить идентичный образ в нескольких средах;если вам нужно пересобрать образ, чтобы запустить его где-то еще, попробуйте создать свойства, которые должны изменять входные данные для изображения во время выполнения, например переменные среды, а не вещи, которые вы исправляете в Dockerfile.