我尝试使用docker机密保护我的payara Docker容器(5.193)。我通过设置payara microprofiles机密目录来阅读机密。 (Repl.it)
我使用post-boot-commands配置payara,但添加MPCONFIG-Variables失败。我为此创建了一个see here。在那里复制我的结果。
我认为payara在执行命令之前会将所有变量替换为值,以便我的密码在我的配置中将是纯文本格式,而不是对Microprofile的引用。
我搜索了对变量进行转义的可能性,因此payara将引用写入配置,而不是值。这样,我可以更改docker机密,然后payara自动(可能在重启后)解析新值。
我的post-boot-commands中有以下代码:
set-config-dir --directory=/run/secrets/ --target=server-config
create-jdbc-connection-pool project-pool
set resources.jdbc-connection-pool.project-pool.property.user=${MPCONFIG=postgres_user}
我希望payara将${MPCONFIG=postgres_user}
作为字符串写入配置,所以我尝试对其进行转义:
$${MPCONFIG=postgres_user}
\${MPCONFIG=postgres_user}
\\${MPCONFIG=postgres_user}
'$''{MPCONFIG=postgres_user}'
${MPCONFIG=postgres_user}
${u=036}{MPCONFIG=postgres_user}
什么都没有。
如果我转到payara管理面板并手动键入变量,它将起作用。所以我知道payara会正确读取docker机密。