我在Windows powershell中像这样定义变量
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?\/)*?([a-z\.\-]+)(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1$2$4 [NC]
# Send would-be 404 requests to Craft
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(favicon\.ico|apple-touch-icon.*\.png)$ [NC]
RewriteRule (.+) index.php?p=$1 [QSA,NC]
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Port} !=443
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
</ifmodule>
# Example to cache images and CSS files
# adjust and extend to your needs
<ifModule mod_headers.c>
# images expire after 1 week
<filesMatch ".(gif|png|jpg|jpeg|ico|pdf|svg|js)$">
Header set Cache-Control "max-age=604800"
</filesMatch>
# CSS expires after 1 week
<filesMatch ".(css|js|woff2)$">
Header set Cache-Control "max-age=604800"
</filesMatch>
</ifModule>
运行此命令后,当我查看docker容器中的许可证文件时,它将删除双引号。
当我从docker容器中检查时,这就是我看到的。如果您在下面看到引号,则将其删除。
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
我试图将$ LFILE用单引号和双引号引起来。 我试图像这样将文件名直接放在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
答案 0 :(得分:0)
仅使用“ 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命令,您正在尝试为许可证设置环境变量。看来,您需要在容器中放入一个文件,然后设置lens.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
答案 1 :(得分:0)
我不熟悉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