基于this Dockerfile 我正在Windows容器中运行Azure Functions运行时。
我想带上我自己的秘密。因此,我将自己的host.json添加到runtime\secrets
文件夹中,并将存储类型设置为files
:
host_secret.json:
{
"masterKey": {
"name": "master",
"value": "***fancy-code-for-host-admin-and-keys-api***",
"encrypted": false
},
"functionKeys": [
{
"name": "default",
"value": "***fancy-code-for-functions***",
"encrypted": false
}
]
}
Dockerfile:
....
ADD host_secret.json C:\\runtime\\Secrets\\host.json
ENV AzureWebJobsSecretStorageType=files
....
启动容器和功能应用程序时,它没有响应并显示
功能主机未运行。
查看我找到的日志
System.UnauthorizedAccessException:拒绝访问路径'C:\ runtime \ Secrets \ host.json'
答案 0 :(得分:2)
该容器以ContainerUser
的身份运行,因此该用户需要访问此文件。
ADD host_secret.json C:\\runtime\\Secrets\\host.json
USER ContainerAdministrator
RUN icacls "c:\runtime\secrets" /t /grant Users:M
USER ContainerUser
ENV AzureWebJobsSecretStorageType=files
这将授予对容器内用户的修改访问权限-组ContainerUser
的成员。