Как получить переменные окружения, введенные через ключ -e в сценарий точки входа? - PullRequest
2 голосов
/ 05 апреля 2019

Мне нужно запустить мое приложение на порту, установить ключ -e в docker run команда

Я запускаю свое приложение в сценарии ENTRYPOINT и пытаюсь получить переменную $PORT env, но нет никакой переменной env, установите ключи -e.

Обслуживание приложения в Dockerfile

ENTRYPOINT ["sh", "entrypoint.sh"]
Сценарий

entrypoint.sh:

#!/bin/bash

func start --port $PORT

Команда запуска Docker:

docker run -d -p 20937:8081 --name queue_0_middleware -e WEBSITE_CORS_ALLOWED_ORIGINS=https://functions.azure.com,https://functions-staging.azure.com,https://functions-next.azure.com -e PORT=8081

1 Ответ

0 голосов
/ 05 апреля 2019

Если я запускаю эту команду локально, я добавляю имя изображения следующим образом: sudo docker run -p 15615:8081 30c7bb13d4b4 --name queue_2_middleware -e PORT=8081

Это не будет делать то, что вы ожидаете, командная строка докера чувствительна к порядку.Все после имени изображения используется для замены значения CMD внутри вашего изображения.С заданной точкой входа это просто аргументы в вашем скрипте точки входа.Другими словами, команда docker выглядит следующим образом:

docker run ${args_to_run} ${image_name} ${cmd_override}

Исправлено перестановка команды с аргументами в run, расположенными перед именем изображения:

sudo docker run -p 15615:8081 --name queue_2_middleware -e PORT=8081 30c7bb13d4b4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...