Как исправить Powershell от удаления двойных кавычек в файле - PullRequest
0 голосов
/ 11 апреля 2019

Я определяю переменную в Windows PowerShell следующим образом:

1.$LFILE=cat license.json
2.echo $LFILE
   {
    "source": "ABCD LTD",
    "clientId": "EAL",
    "details": "Lenses",
    "key": "acfghkjhadasldas"
   }

3.docker run --rm -d -p 3030:3030 -e LICENSE=$LFILE landoop/kafka-lenses-dev:latest

. После запуска, когда я смотрю на файл лицензии внутри контейнера Docker, он удаляет двойные кавычки.

Когда я проверяю изнутри док-контейнера, это то, что я вижу.если вы видите ниже, цитаты удаляются.

root@fast-data-dev / $ cat /var/run/lenses/license.conf
{
  source: ABCD LTD,
  clientId: EAL,
  details: Lenses,
  key: acfghkjhadasldas 
}

io.lenses.core.license.LicenseException: Can not read the license 
file:/var/run/lenses/license.conf

Я пытался поместить $ LFILE в одинарные и двойные кавычки.Я попытался поместить имя файла непосредственно в команду Docker, как это.все еще не повезло.

docker run --rm -d -p 3030:3030 -e LICENSE="'$(cat license.json)'" landoop/kafka-lenses-dev:latest

Ответы [ 2 ]

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

Я не знаком с необходимостью форматирования лицензии Docker, но если вам нужны там двойные кавычки, почему бы не сократить то, что у вас есть, и просто явно создать переменную так, как вам нужно?

$LFILE = '{
    "source": "ABCD LTD",
    "clientId": "EAL",
    "details": "Lenses",
    "key": "acfghkjhadasldas"
   }'

- ИЛИ ДОЛЖЕН БЫТЬ -

$LFILE = '"source": "ABCD LTD",
    "clientId": "EAL",
    "details": "Lenses",
    "key": "acfghkjhadasldas"'

- ТОГДА -

## TEST AND ENSURE THE VARIABLE IS FORMATTED CORRECTLY ##
$LFILE

## NOW ADD IT TO YOUR COMMAND AND EXECUTE ##
docker run --rm -d -p 3030:3030 -e LICENSE=$LFILE landoop/kafka-lenses-dev:latest
0 голосов
/ 11 апреля 2019

Использование только одной команды "cat" вернет Object [].Я предполагаю, что докер ищет строку.Чтобы получить строку, используйте один из следующих вариантов:

$LFILE = Get-Content license.json -Raw

или

$LFILE = cat license.json -Raw

, так как вы используете Kafka, я посмотрел конфигурацию лицензирования для этого.Ниже приводится то, что они сказали:

Для запуска Lenses требуется файл лицензии, который можно получить у нас.Получив лицензию, сохраните ее в файле (т.е. license.file) и обновите конфигурацию, указав на нее.Убедитесь, что значение конфигурации содержит полный путь к файлу.

# License file allowing connecting to up to N brokers
lenses.license.file="license.json"

В соответствии с текущей командой docker вы пытаетесь установить переменную среды для лицензии.Кажется, когда вам нужно поместить файл в контейнер, а затем установить lenses.license.file = "full / license / file / path / license.json"

Похоже, вам нужно запуститьчто-то вроде ниже, но он ищет только ключ, а не весь файл.

docker run -p 3030:3030 -e EULA="CHECK_YOUR_EMAIL_FOR_KEY" \ --name=lenses-dev landoop/kafka-lenses-dev

Документация по линзам v2.3

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