Текущая ситуация:
- Dockerfile, основанный на образе Ubuntu, устанавливает Wget и объявляет, что bashscript будет запускаться при запуске контейнера.
Контейнер Docker запускается на основе образа с необходимыми переменными среды в команде.Эти переменные будут использоваться внутри команды Wget в bashscript.
docker run -i -e ‘ENV_VARIABLE=VALUE’ [imagename]
Контейнер выполняет bashscript, содержащий WUT HTTP PUT:
wget --method=PUT --body-data=”{\“key\”:\”${ENV_VARIABLE}\”}” ……
Желаемая ситуация:
Текущая ситуация работает, но я не предпочитаю это решение.Это из-за экранирования (\ »), которое я должен использовать.
Я попытался решить эту проблему путем построения --body-data, как показано ниже, с окружающими одинарными кавычками.
‘{“key”:”${ENV_VARIABLE}”}’
Однако это не будет устанавливать ENV_VARIABLE, поскольку полезная нагрузка теперь является полной строкой.
Более предпочтительным решением было бы отделить JSON от JSON-файла, на который я могу сослаться в вызове Wget.Возникают следующие вопросы:
- Как обратиться к JSON-файлу?Мое лучшее предположение - сначала скопировать файл сборки изображения в изображение, а затем сослаться на него по пути в вызове Wget, но опять же, как мне к нему обратиться?
- Если приведенная выше точка верна, смогу ли я ссылаться на переменные среды Docker?