Как выставить порт из контейнера и прочитать его с хоста - PullRequest
0 голосов
/ 24 октября 2019

Я создаю образ докера, и мне нужно открыть порт из моего контейнера. При создании изображения мне нужно прочитать порт из файла переменной (что-то похожее на файл .env). Вот мой Dockerfile

FROM ...

ENV PIP_CERT=...

USER root

#installing application source
COPY . /microservice


RUN cd /microservice &&\
  pwd &&\
  ls &&\
  echo "---> Installing dependencies..."

EXPOSE $PORT    

Как я могу это сделать?

1 Ответ

1 голос
/ 24 октября 2019

Вам не нужно делать этот параметр настраиваемым. Выберите номер порта - каким бы ни был порт «по умолчанию», например, для непривилегированной службы 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...